华为sdk报错 Failed to read meta data for the AppID,gradle拷贝配置文件
问题描述:
unity2017,接入第三方支持华为的sdk,androidstudio生成aar给unity
错误日志:
In getMetaDataAppId, Failed to read meta data for the AppID.
最终和技术沟通后得出结论,apk中AndroidManifest.xml文件内没有
<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=*******"/>
原因是agconnect-services.json文件并没有打入到aar,问华为技术也没有得到正面回答,所以aar不能处理,只能通过unity打包gralde的时候处理
解决方式:
华为官方要求agconnect-services.json文件目录
2019.4以及更高
官方解决方案:https://github.com/Unity-Technologies/HuaweiServiceSample
1、agconnect-services.json文件放到Plugins/Android下面
2、参考官方给的demo里的脚本Assets/HuaweiHms/src/Editor/AfterBuildToDo.cs文件修改。用到的是IPostGenerateGradleAndroidProject
不过IPostGenerateGradleAndroidProject是unity 2019.4以及更高版本处理方式
其他处理方式gradle
1、agconnect-services.json文件放到Assets\StreamingAssets下面
2、Plugins/Android下增加并修改mainTemplate.gradle文件,以下代码放到mainTemplate.gradle文件最下面
task copyJsonFile { copy { delete("agconnect-services.json")//先删除旧的文件
//拷贝文件到华为需要的目录 from('src/main/assets/') into('./') include("agconnect-services.json") } } preBuild.dependsOn copyJsonFile
执行结果
ps:
1、打包后可以通过反编译apk,查看AndroidManifest.xml文件内没有
<meta-data android:name="com.huawei.hms.client.appid" android:value="appid=*******"/>
2、也可以通过此方法处理gradle拷贝其他文件,比如google-services.json
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步