手动构建一个外部外部Jar的资源文件的Android APK

时间:2019-05-14 15:25:18

标签: java android jar libgdx apk

我正在使用aapt,dx等手动构建apk。

我有一些外部jar文件,我正在使用LibGDX,当我编译代码时,gdx在其类路径中(在jar文件本身中)包含一些资源文件,dx仅处理.class文件并丢弃资源(例如gdx在jar文件中的com / badlogic / gdx / utils / arial-15.png中具有默认字体)我想知道如何也捆绑这些资源文件,我提取了用gdx制作的另一款游戏的apk似乎这些文件像apkroot / com / badlogic / gdx /一样放在apk的根目录中。IDE如何做到这一点,我是否必须手动提取jar文件并获取资源?

1 个答案:

答案 0 :(得分:0)

已经有一段时间了,没有人回答我,直到那时我一直在尝试各种东西,最后我找到了一种不手动提取的方法,因此基本上是在我的构建流程上,而不是让aapt来创建初始apk文件用dx代替,即

dx --dex --verbose --num-threads=4 --output=file.apk obj libs/dex

obj是包含我的代码中已编译的.class文件的文件夹,libs /包含外部jar文件,libs / dex保留了libs /的缓存jar,之前已对其进行了dexed,以便进行更快的构建,方法是让dx使它可以进行初始apk也将apk中的资源捆绑在一起,现在apk具有预期的资源,然后我们在dx之后使用aapt(实际上我们在dx之前使用过一次,以生成R.java来清除,但不要使用aapt创建apk)与aapt我们像往常一样使用package命令,但是包含-u标志,以便它修改apk而不是重写它,现在我们可以将普通的android资源和外部jar的资源打包在最终apk中。要明确的是,这并不意味着要完全手工制作apk的完整指南,应该已经了解aapt / dx工具链,我只是在说明一种解决该问题的工具链的解决方法。