我正在点击此 链接, 我首先成功执行了此命令。
javac <path + filename>.java
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试执行以下命令时,我遇到错误“类名与路径不匹配”。
dx --dex --output=<path + filename>.dex <path + filename>.class
我的 .class 和 .java 有相同的名称,但我认为我必须编写 .class 文件名的显式路径。那么现在该怎么办呢。我正在做一些小错误,但无法找到。
dx 对您提供的路径很挑剔 - 类文件相对于工作目录的相对路径必须与类的包匹配。
例如,如果您的命令是
dx --dex --output=classes.dex out/com/example/HelloWorld.class
Run Code Online (Sandbox Code Playgroud)
然后dx假设HelloWorld的包名应该是out.com.example,如果不是则抱怨。
但是,有一个技巧 - 您可以/./在给定 dx 的路径中添加路径组件,以指定相对于 java 包的“根”位置。如果上一个示例中的包实际上是 com.example,那么您可以执行以下操作:
dx --dex --output=classes.dex out/./com/example/HelloWorld.class
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用 --no-strict 选项,该选项禁用 dx 的路径检查。