一、Service的声明
在插件中,有使用到Service时,插件项目中需要在AndroidManifest.xml
中声明,同时依赖插件的宿主项目也需要在AndroidManifest.xml中声明。这是因为 Android 系统要求在应用的清单文件中明确声明所有服务。
二、原生调用Flutter的函数
// Android中调用
methodChannel?.invokeMethod(Constant.STEP_SLEEP_HISTORY,data)
// flutter中调用 setMethodCallHandler
FlutterWearPlatform.instance
.getMethodChannel()
.setMethodCallHandler((MethodCall call) async {
}
三、jar、aar、so文件的配置
- 在android目录下面创建
libs
文件夹,存放jar和aar文件 - 在android/src/main目录下创建
jniLibs
文件夹,存放so文件 - 在android/build.gradle文件中配置
flatDir
rootProject.allprojects {
repositories {
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
flatDir {
dirs project(':flutter_test').file('libs')
}
}
}
image.png
四、插件中使用gson进行序列化时,启用混淆会导致属性字段被修改,flutter层收到的数据无法解析
需要在宿主项目中添加gson相关类和对象类避免被混淆
# 保留 Gson 使用的类和字段名称
-keepattributes Signature
-keepattributes *Annotation*
# 保留 Gson 的所有模型类
-keep class com.smartgoyucheng.flutter_wear.** { *; }
# 保留所有在 Gson 中使用的类
-keep class com.google.gson.** { *; }
网友评论