使用Libgdx为64位设备更新android应用

时间:2019-01-29 04:55:10

标签: android android-studio libgdx

我在Google Play上的Android应用程序很少。我只需要按照Google最近提到的以下要求更新应用程序即可。也就是说,所有应用都必须与64位兼容。

https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

问题:

  1. 应用程序需要进行哪些代码更改才能使其与64位设备兼容?
  2. 我们有可用的64位版本的LibGdx吗?
  3. 如果没有可用的64位LibGdx,是否有其他解决方法?

1 个答案:

答案 0 :(得分:9)

我也收到了Google的电子邮件,开始怀疑我的游戏是否与64位体系结构兼容。

回答您的问题:根据官方libgdx changelog x64支持已在1.9.0版(2016年1月24日发行)中添加。因此,如果您的投影是使用此版本设置的,那很好! x64已经受支持。

如果(例如在我的情况下)您的项目最初使用的版本是 1.9.0之前的版本,则需要更改代码:

1)将以下几行添加到根build.gradle中:

project(":android") {
   dependencies {
     ....
     // x32 support
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
     // NEW x64 support
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
     ....
   }
}

请注意,如果您应该为所使用的每个第3方库添加这两行,例如我有gdx-freetype-platform,所以我加了

    natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
    natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"

2)将以下行添加到特定于android的build.gradle中:

task copyAndroidNatives() {
    ....
    file("libs/arm64-v8a/").mkdirs()
    file("libs/x86_64/").mkdirs()

    configurations.natives.files.each { jar ->
        ....
        if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
        if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
        .....
    }
}

3)重建项目,并检查arm64-v8ax86_64文件夹是否出现在android-> libs文件夹中,并且它们都包含libgdx.so文件

4)测试!最简单的方法是在真实设备上进行测试,因为其中很多设备都支持x64。

旁注! 如果不确定是否包含这些库,请转到Intellij Idea \ Android Studio中的“构建”->“分析APK”,并检查lib包含arm64-v8ax86_64文件夹

Analyze APK