无法通过Davik VM执行.java文件

时间:2013-02-26 12:39:50

标签: java dalvik

我关注此link 我已成功执行此命令。

javac <path + filename>.java 

然后在我尝试执行以下命令后,我面临一个错误“类名与路径不匹配”。

dx --dex --output=<path + filename>.dex <path + filename>.class

我的.class和.java名称相同,但我认为我必须编写.class文件名的显式路径。那现在该怎么办。我正在做一些小错误,但无法找到。

3 个答案:

答案 0 :(得分:2)

你的命令似乎错了:

dx --dex --output=.dex .class

你试过这个吗?

dx --dex --output=YourClass.dex YourClass.class

答案 1 :(得分:2)

dx对你提供的路径很挑剔 - 类文件相对于工作目录的相对路径必须与类的包相匹配。

例如,如果您的命令是

dx --dex --output=classes.dex out/com/example/HelloWorld.class

然后dx假设HelloWorld的包名称应该是out.com.example,如果不是则抱怨。

但是,有一个技巧 - 你可以在你给dx的路径中添加一个/./路径组件,以指定相对于java包的“root”的位置。如果上一个示例中的包实际上是com.example,那么您可以执行以下操作:

dx --dex --output=classes.dex out/./com/example/HelloWorld.class

另一种选择是使用--no-strict选项,它禁用dx的路径检查。

答案 2 :(得分:2)

为避免幻数问题,首先检查你的jdk版本,看来jdk 1.7 *有问题。我恢复到jdk 1.6。

而不是使用dx --dex --output=<path + filename>.dex <path + filename>.class 我们可以做一件事将一个或所有.classes文件放在一个文件夹中说classFolder 现在发出以下命令:

dx --dex --output=YourClass.dex  absolutePath/classFolder 

dx命令将选择该文件夹中的一个或所有类文件。