问题描述
我正在尝试使用 HMS Toolkit 将我的应用从 GMS 移植到 (G+H)。
使用 Toolkit 转换器后,以下行在 import org.xms.f.auth.ExtensionAuth
上抛出一个未解决的引用错误,要求定义 xms。这显然意味着 xmsadapter 文件(由 HMS Toolkit Converter 生成)尚未导入。
如何修复此错误以在 import org.xms.f.auth.ExtensionAuth
上导入 .xms 文件?我觉得缺少依赖项?
解决方法
您也可以先检查您配置的混淆脚本。
使用添加 HMS API 政策生成的 XMS 代码会增加应用的大小。您可以通过在app/build.gradle文件中添加或修改以下配置来启用代码缩减功能:
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
}
如果出现诸如“找不到...”、“NoClassDefFoundError”、“ClassNotFoundException”、等错误消息>"NoSuchFieldException",或者minifyEnabled设置为true后显示"NoSuchMethodException",在app/proguard-rules.pro中配置如下XMS混淆规则:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep class com.huawei.agconnect.**{*;}
-keep interface com.huawei.agconnect.**{*;}
-keep class com.huawei.hmf.**{*;}
-keep class com.google.android.gms.**{*;}
-keep interface com.google.android.gms.**{*;}
-keep class com.google.firebase.**{*;}
-keep interface com.google.firebase.**{*;}
-keep class org.xms.**{*;}
-keep interface org.xms.**{*;}
详情可参考此Docs。