gpt4 book ai didi

java - 从 Java 源代码创建 DEX 文件

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:34 24 4
gpt4 key购买 nike

我在网上广泛搜索了使用 Android SDK DX 工具创建 Android DEX 文件(Java Dalvik 字节码)的综合指南。

我的目标是创建一个包含 DEX 字节码的 Jar 文件,该文件可以在运行时由应用程序加载。

为了创建 Jar 文件,我一直遵循以下步骤:

  1. 包含公共(public)类 (Name.java) 的 Java 源代码
  2. 使用 javac Name.java 将步骤 1 中的 .java 文件编译成 .class 文件
  3. 从类文件创建了一个 Jar 文件。 jar cvf output.jar name.class
  4. 使用 dx 工具将类文件转换为 classes.dex。 ./dx --dex --output=classes.dex output.jar
  5. 使用aapt 将classes.dex 文件与jar 文件重新打包。

到目前为止,我已经成功完成了第 4 步,这是我遇到问题的地方。运行 dx 工具时,出现以下错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.io.FileNotFoundException: /home/del/Desktop/AndroidJarBuilder/output.jar (No such file or directory)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:215)
at java.util.zip.ZipFile.<init>(ZipFile.java:145)
at java.util.zip.ZipFile.<init>(ZipFile.java:159)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
1 error; aborting

不知道有没有人遇到过这个问题,我在Stack Overflow上找不到任何答案,其余的网络也没有为我提供任何解决方案。

提前致谢。

最佳答案

原来 jar 命令的输出需要与类名相同。

output.jar 重命名为 Name.jar 似乎可以解决问题。

关于java - 从 Java 源代码创建 DEX 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29348327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com