flutter - 如何在 Android 项目中使用的 Flutter 模块上集成 protobuff?
问题描述
我尝试将 Flutter 插件集成到原生应用程序 Android 和 iOS。它工作得很好,但我想使用 protobuf 通过定义的数据模型向使用 MethodChannel 的颤振插件传递数据。
我的问题是关于数据模型在 Android App 上的集成,我不能使用生成的 kotlin 文件,我不明白如何将它用于 Android App。
在 Flutter 插件项目中,我使用了这个包:
- protobuf:2.0.0
- protoc_plugin:20.0.0
我已经定义了一个这样的原型文件示例:
ROOT_FLUTTER_PROJECT/protos/message_example.proto
syntax = "proto3";
option java_package = "com.example.android_test";
message testMessageData {
string test = 1;
}
我使用这个命令来生成飞镖模型:
protoc --dart_out=./lib ./protos/message_example.proto
然后我生成了 Kotlin 文件以移动到 Android App 中:
protoc --kotlin_out=./lib ./protos/message_example.proto
在我的安卓项目中,
ROOT_ANDROID_PROJECT/build.gradle :
buildscript {
...
dependencies {
...
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17'
}
}
ROOT_ANDROID_PROJECT/app/build.gradle :
...
apply plugin: 'com.google.protobuf'
...
protobuf {
// Configure the protoc executable
protoc {
// Download from repositories
artifact = 'com.google.protobuf:protoc:3.9.2'
}
plugins {
javalite {
// The codegen for lite comes as a separate artifact
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
}
generateProtoTasks {
all().each { task ->
task.plugins {
javalite { }
}
}
}
}
dependencies {
...
implementation 'com.google.protobuf:protobuf-lite:3.0.1'
...
}
在我的 Android 应用程序中,我无法使用生成的对象。您有任何示例或解决方案吗?
在哪里可以将生成的 kotlin 文件移动到 Android App 中?
解决方案
推荐阅读
- javascript - 如何解决拒绝在 Javascript 中设置不安全的标头“User-Agent”
- eslint - 在 eslint 上使用数组解构(首选解构)错误
- php - PHP 卷曲 URL $Filter
- objective-c - NSTextView 和确定字形位置
- node.js - Nestjs 中的 Rxjs - 可观察到的订阅错误
- css - LESS CSS - 有条件地返回一个变量
- c# - 是否可以使用反射在 Unity 中获取 Transform 类型的字段?
- ruby-on-rails - Rails 5:如何将灯具指向其他灯具?
- python - Python-如何排序矩阵
- json - 仅访问 Json 值的一部分