java - 手工构建Android APK,外部Jar的资源文件

标签 java android jar libgdx apk

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

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

最佳答案

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

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

obj是包含我的代码中编译的.class文件的文件夹,libs/包含外部jar文件,libs/dex保存libs/的缓存jar,这些jar之前已经被dexed以加快构建速度,通过让dx制作初始apk它可以还将资源 bundle 在apk中,现在apk具有预期的资源,然后我们在dx之后使用aapt(实际上我们在dx之前使用它一次来生成R.java以明确,但不要使用aapt创建apk)与aapt我们一如既往地使用 package 命令,但包含 -u 标志,这样它会修改 apk 而不是重写它,现在我们可以在最终的 apk 中打包普通的 android 资源以及外部 jar 的资源。需要明确的是,这并不意味着是手动制作 apk 的完整清晰指南,您应该已经了解 aapt/dx 工具链,我只是解释使用工具链解决我的问题的解决方法。

关于java - 手工构建Android APK,外部Jar的资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56133897/

相关文章:

java - 运行 jar 文件返回 java.library.path 错误

java - 正则表达式电子邮件验证问题

java - 如何从其他设备获取您的应用程序发生的错误?

android - 如何获取对 xml 布局中定义的颜色属性的引用?

android - 公式 px 到 dp,dp 到 px android

android - 如何获取内部测试的选择加入 URL?

Java 获取与 Jar 相同目录下的文件夹

java - 如何在 ant 构建过程中包含外部类文件

java - Spring ControllerAdvice 没有捕获 SizeLimitExceededException?

java - 如何从另一个页面获取属性