我正在尝试创建一个简单的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
如何解决此问题?
答案 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
这很糟糕,但唯一有用的。