华为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文件放到AssetsStreamingAssets下面

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

原文地址:https://www.cnblogs.com/wangle/p/14832896.html