如何将.jar或.class转换为.dex文件?

时间:2011-12-01 20:53:43

标签: java android dex dx

我要编辑Opera Mini v6.5服务器,因为它在我们国家被阻止了。

现在我解压缩.apk文件提取的classes.Dex然后通过dex2jar.bat转换它,现在修改了服务器。

我的问题是我想将.jar或.class重新打包到classes.Dex。我该怎么做?

5 个答案:

答案 0 :(得分:32)

这是一个在我的案例中有用的解决方案......

假设.jar文件位于“c:\ temp \ in.jar”中。在命令提示符窗口cd到.. \ android-sdk \ platform-tools。 要获得.apk执行:

dx --dex --output="c:\temp\app.apk" "c:\temp\in.jar"

要获取.dex文件执行:

dx --dex --output="c:\temp\dx.dex" "c:\temp\in.jar"

答案 1 :(得分:1)

对于mac,dx命令工具存储在不同的目录中,如上面的答案中所述。以下是你在mac中的表现:

   exampleName$ /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/dx --dex --output="/Users/exampleName/Downloads/classes-dex2jar.jar" "/Users/exampleName/Downloads/name.dex"

更详细的说明:

  • dx工具存储在android SDK中,但在mac上的不同目录中,mac的路径为/Users/exampleName/Library/Android/sdk/build-tools/25.0.2/
  • 对于windows和mac,命令是相同的,路径是不同的
  • 两个平台的命令均为dx --dex--output="c:\temp\app.apk" "c:\temp\in.jar"
  • 该工具可能需要几分钟才能生成dex文件

如果由于某种原因仍无法正常工作,请确保您遵循以下要求:

enter image description here

我知道这已经很晚了,但我必须在经过数小时的试用和错误之后自己解决这个问题 - 希望它能帮助其他一些mac用户

答案 2 :(得分:0)

要对jar文件进行dexify,您可以在sdk的platform-tools文件夹中使用dx.bat。您还可以查看SDK中tools \ ant文件夹内build.xml文件中的-dex任务。

答案 3 :(得分:0)

听起来你需要apktool,它允许你重新包装并重新签名一个apk,而不需要自己运行dx和aapt。

Here's an article关于如何解压缩和重新包装

答案 4 :(得分:0)

为避免下载整个Android Studio,请执行以下操作: 您可以转到command-tools download并提取文件夹。然后进入它,找到您的sdkmanager工具。然后在命令行上输入sdkmanager "build-tools;28.0.1"。您可以根据所使用的Java版本选择合适的构建工具版本。这会将其下载到命令行工具的根目录中。进入该文件夹,您将看到dx工具。然后,您可以输入dx --dex --output="nameoffile.dex" nameoffile.jar

一些额外的注意事项:如果您尝试转换一个大罐子,可能会遇到OUT OF MEMORY错误。在这种情况下,只需将增加堆选项dx -JXmx256m ...传递给JVM。