我有一个用Java编写的Unity插件。在这个插件中,我需要让新的Google Advertisement ID来做,我必须添加到清单文件中:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
编译时,Unity会抛出错误:
Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
/Applications/adt/sdk/build-tools/android-4.2.2/aapt package --auto-add-overlay -v -f -m - J gen -M AndroidManifest.xml -S "res" -I "/Applications/adt/sdk/platforms/android- 19/android.jar" -F bin/resources.ap_
stderr[
AndroidManifest.xml:21: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').
]
我还尝试将Google Play服务jar添加到[lugins / Androif文件夹但是没有帮助。 使它运作的正确方法是什么?
答案 0 :(得分:25)
要解决此错误,您必须将version.xml
文件从android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/res/values/
复制到Unity项目文件夹的Assets/Plugins/Android/res/values/
。
答案 1 :(得分:2)
不要将所有项目复制到插件/ Android中。
将文件Manifest.xml配置为正确的信息。复制到插件/ Android。
<meta-data android:name="com.google.android.gms.games.APP_ID" android:value="\ android app id " /> <meta-data android:name="com.google.android.gms.appstate.APP_ID" android:value="\ android app id " /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity android:name="com.google.example.games.pluginsupport.SignInHelperActivity" />
复制Google Play服务jar - &gt;插件/ Android
复制所有资源文件夹 - &gt;插件/ Android / res
答案 2 :(得分:1)
更新的简单解决方案:
今天,我有同样的问题。
我注意到,当我从名为folder
的{{1}}复制android-sdk/extras/google/google_play_services/libproject/
时; google-play-services_lib
中已存在此文件夹中的统一信息。
并且复制的文件夹的名称为Assets/Plugins/Android
。
所以我只删除了这个文件夹,它运行正常。
答案 3 :(得分:-1)
您需要与项目相关联的最新Google Play服务库项目,因此在构建期间,项目中的所有资源也将可用。你肯定有较旧的库,因为最近刚刚介绍了google_play_services_version
。而且您不能只将jar
添加到您的项目中 - 它将无法正常工作。只需将Google Play服务添加为已记录的永久库。