1

我在 JavaFX 上写了一个小游戏并成功移植到 Android。现在我想加入一些 Google Ads。为此,我创建了一个 PlatformService 和 AndroidPlatformProvider ,如本所示。我正在为 Netbeans 使用 Gluon 插件

我将此添加到我的 build.gradle 文件中:

repositories { 
    def androidHome = System.getenv("ANDROID_HOME") 
    maven { url "$androidHome/extras/android/m2repository/" } 
    maven { url "$androidHome/extras/google/m2repository/"}
} 
dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.google.android.gms:play-services-ads:7.5.0' 
}

在我的 AndroidManifest.xml 中,我添加了:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

当我尝试构建apk文件时,我得到了下一个错误

:processAndroidResources UP-TO-DATE C:\Users\Martin\Documents\NetBeansProjects\Trio\build\javafxports\tmp\android\AndroidManifest.xml:27: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version'). :processAndroidAndroidResources FAILED

我搜索了一下,发现我应该将 google-play-services_lib 作为库包含,但我不知道如何。这是我第一次使用 gradle

在 Android SDK Manager 中,我安装了最新的 Play Services 和 Repository

4

1 回答 1

0

这不是一个完整的解决方案,而只是一种解决方法......

您对 google-play-services_lib 的看法是正确的:它包含一个包含所有服务的胖 jar。如果您只是将此 jar 复制到您的 libs 文件夹,则不需要任何依赖项,但是:

dependencies { 
    // compile fileTree(include: ['*.jar'], dir: 'libs')
    // compile 'com.google.android.gms:play-services-ads:7.5.0'
    androidCompile files('libs/google-play-services.jar')
}

现在,您可以构建您的项目,但您仍然需要清单文件中的元数据。

如果您查看 google-play-services_lib 文件夹,您还会发现一个res/values文件夹,其中包含一个version.xml文件。那里有你要找的东西。所以现在你可以找到编辑这个文件的值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="google_play_services_version">7571000</integer>
</resources>

并替换 AndroidManifest.xml 上的字符串:

<meta-data android:name="com.google.android.gms.version" android:value="7571000" />

但是由于您需要这些资源以及 jar,我认为将所有 res 内容复制到您的 android/res 文件夹中是一种更好的方法。

现在您应该能够构建您的 apk。

于 2015-07-04T13:36:29.790 回答