19

我将编辑 Opera Mini v6.5 服务器,因为它在我国被封锁。

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

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

4

5 回答 5

35

这是一个对我有帮助的解决方案...

假设 .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"
于 2012-12-31T12:20:10.533 回答
3

对于 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 文件

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

在此处输入图像描述

我知道这已经晚了,但是经过数小时的反复试验后,我不得不自己解决这个问题——希望它可以帮助其他一些 mac 用户

于 2017-07-18T20:06:45.953 回答
1

为避免下载整个 Android Studio:您可以转到命令工具下载并解压缩文件夹。然后进入它并找到你的sdkmanager工具。然后在你的命令行输入sdkmanager "build-tools;28.0.1". 您可以根据您使用的 java 版本选择合适的构建工具版本。这会将其下载到命令行工具的根目录中。进入此文件夹,您应该会看到该dx工具。然后你可以输入dx --dex --output="nameoffile.dex" nameoffile.jar.

一点额外说明:如果您尝试转换一个巨大的 jar,您可能会收到一个OUT OF MEMORY错误。在这种情况下,您只需将增加堆选项传递给 JVM dx -JXmx256m ...

于 2019-01-03T21:45:22.710 回答
0

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

于 2011-12-01T21:15:23.397 回答
0

听起来您需要apktool,它允许您重新打包和退出 apk,而无需自己运行 dx 和 aapt。

这是一篇关于如何解包和重新打包的文章

于 2013-05-30T09:34:28.987 回答