【问题标题】:Can't use google play services on unity java plugin无法在统一 java 插件上使用谷歌播放服务
【发布时间】:2014-11-12 21:24:26
【问题描述】:

我有一个用 Java 编写的 Unity 插件。在这个插件中,我需要获取新的 Google Advertisement ID 才能做到这一点,我必须添加到 Manifest 文件中:

<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 文件夹,但这没有帮助。 让它发挥作用的正确方法是什么?

【问题讨论】:

    标签: android plugins unity3d google-play-services


    【解决方案1】:

    要修复此错误,您必须将 version.xml 文件从 android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/res/values/ 复制到您的 Unity 项目文件夹中的 Assets/Plugins/Android/res/values/

    【讨论】:

    • 我尝试复制 version.xml 并尝试复制整个 res 文件夹。没运气。我错过了什么?
    • @AlmogC 我不确定你做错了什么。也许在一个全新的 Unity 项目中尝试一下?
    • 为什么 Google 设置说明中没有
    【解决方案2】:

    不要将所有项目复制到您的插件/Android 中。

    1. 配置文件 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"
       />
      
    2. 复制 Google play services jar -> 到 Plugins/Android

    3. 复制所有res文件夹->到Plugins/Android/res

    【讨论】:

    • 你能解释一下我是否需要将“\android app id”设置为某个东西还是保持原样?
    • 我尝试了上述方法,但没有成功。我将 sn-p 按原样复制到 Manifest.xml 中的 Application 节点。知道我错过了什么吗?
    • Android App ID 是一个字符串,您可以从 Google Developer Console 获取。转到此处developers.google.com/games/services/console/enabling -> 设置您的游戏 -> 创建客户端 ID
    【解决方案3】:

    更新的简单解决方案:

    今天,我有同样的问题。 我注意到,当我从 android-sdk/extras/google/google_play_services/libproject/ 复制 folder 命名为 google-play-services_lib 时;在统一的Assets/Plugins/Android 中已经有这个文件夹。 复制文件夹的名称为goole-play-services_lib 1

    所以我只删除了这个文件夹,它工作正常。

    【讨论】:

      【解决方案4】:

      您需要最近链接到您的项目的 Google Play 服务库项目,因此在构建期间该项目的所有资源也将可用。您肯定有较旧的库,因为 google_play_services_version 最近才被引入。而且您不能只将jar 添加到您的项目中——它不会起作用。只需将 Google Play 服务添加为文档中的永久库即可。

      【讨论】:

      • 我的 api 级别为 19,是最新的。另外,我在一个简单的 android java 应用程序中使用这个插件,它可以工作,在那里,我从 google play services api 链接 lib,但我如何统一链接它?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      相关资源
      最近更新 更多