Dalvik VM Invocation问题

时间:2012-01-06 08:03:23

标签: android dalvik

我正在尝试创建一个简单的JAR文件,如here,并在shell中执行它。我被困在这条线上

dx --dex --output=foo.jar Foo.class

当我在CMD中执行此行时。我总是收到这样的错误

trouble processing:
class name (com/delvix2/Foo) does not match path (C:/somepathhere/classes/com/delvix2/Foo.class)
...while parsing C:/somepathhere/classes/com/delvix2/Foo.class
...while processing C:/somepathhere/classes/com/delvix2/Foo.class
1 warning
no classfiles specified

enter image description here

如何解决此问题?

5 个答案:

答案 0 :(得分:2)

看起来dx期望你给它的类的相对路径将匹配它的包。试试这个:

cd c:/somepathhere/classes
dx --dex --output=foo.jar com/delvix2/Foo.class

答案 1 :(得分:2)

使用--no-strict选项:

dx --dex --no-strict --output=foo.jar Foo.class

答案 2 :(得分:2)

这适合我。

dx --dex --output="full path to dex file\file.dex" "c:\.....path to folder which contains the class file only"

第一条路径:dex文件的完整路径,包括您想要的dex文件的名称

第二条路径:包含“仅{”.class文件的文件夹的路径。

(只要给出文件夹的路径,不要给出类文件名)

答案 3 :(得分:0)

一定是你的情况

dx --dex --output=C:\classes.dex C:\temp\Foo.jar

然后你必须使用

aapt add C:\temp\Foo.jar C:\classes.dex

我希望它会起作用

答案 4 :(得分:0)

我尝试了所有这些,但没有奏效。有一些对我有用的东西,就是把你的课程放在\sdk-path\platforms-tools\。例如,

C:\sdk-path\platforms-tools\dx --dex --output=class.dex  com\mypack\app\myclass.class

myclass.class住在,

C:\sdk-path\platforms-tools\com\mypack\app\myclass.class

这很糟糕,但唯一有用的。