`

dx工具(android将jar包转成dex格式二进制jar包工具)

阅读更多

好吧,不得不承认这个工具真心难找,也不知道自己sdk里以前怎么就有了,还好给了师傅一份,现在重装系统从网上找这个工具都找不到。

将platform-tools.zip解压,将其内部资源拷贝到android sdk platform-tools目录下即可使用(window环境)。

编译命令,cmd进入到android sdk platform-tools目录 dx --dex --output=target.jar origin.jar

上述命令中 origin.jar为源代码导出的jar包,target.jar为dx工具产生的dex二进制jar包!

 

 

5
2
分享到:
评论
11 楼 flycatdeng 2015-09-14  
夜色蓝 写道
我想说dx在sdk的build-tools里面比如build-tools\19.1.0

真的有,在lib目录下!
10 楼 夜色蓝 2015-09-05  
我想说dx在sdk的build-tools里面比如build-tools\19.1.0
9 楼 qwerty123220 2015-01-15  
话说大神能给个QQ什么的吗?
这样搞真心好慢→_→
8 楼 qwerty123220 2015-01-15  
flycatdeng 写道
qwerty123220 写道

D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools>dx -dex -
output=classes.dex D:\360downloads\huangdi7\classes_dex2jar.jar
dex和output前面都是两个-

dx --dex --output ...你再试试


换成两个-是吗?
还是不行啊。


D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools>dx --dex
--output=classes.dex classes_dex2jar.jar

EXCEPTION FROM SIMULATION:
expected type java.lang.Object but found int

...at bytecode offset 0000015a
locals[0000]: Lcom/huangdi/h/k;
locals[0001]: Ljava/util/ArrayList;
locals[0002]: <invalid>
locals[0003]: Ljava/lang/String;
locals[0004]: <invalid>
locals[0005]: <invalid>
locals[0006]: <invalid>
locals[0007]: <invalid>
locals[0008]: <invalid>
locals[0009]: <invalid>
locals[000a]: <invalid>
locals[000b]: <invalid>
locals[000c]: <invalid>
locals[000d]: <invalid>
...while working on block 0156
...while working on method b:()Ljava/util/List;
...while processing b ()Ljava/util/List;
...while processing com/huangdi/h/k.class

1 error; aborting

D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools>
7 楼 flycatdeng 2015-01-15  
qwerty123220 写道

D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools>dx -dex -
output=classes.dex D:\360downloads\huangdi7\classes_dex2jar.jar
dex和output前面都是两个-

dx --dex --output ...你再试试
6 楼 qwerty123220 2015-01-14  
flycatdeng 写道
qwerty123220 写道

批量将.class文件转为.java什么的。那估计你要找反编译工具了!
忘了说了,原jar包需要放在tools目录下,即classes_dex2jar.jar需要放在D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools目录下。
http://flycatdeng.iteye.com/blog/2100653 第五部分有说!


啊哈哈,即使把jar包放在tools目录下也会报错啊(无奈)
说到反编译工具的话,我到目前为止共用Jclasslib Bytecode、jd-gui、dex2jar-0.0.9.15、ApkTool、APKSign、Jad这些工具,这里面有能用的吗?

另外那个第五部分,是说第三大部分的第五条吗?
5 楼 flycatdeng 2015-01-14  
qwerty123220 写道

批量将.class文件转为.java什么的。那估计你要找反编译工具了!
忘了说了,原jar包需要放在tools目录下,即classes_dex2jar.jar需要放在D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools目录下。
http://flycatdeng.iteye.com/blog/2100653 第五部分有说!
4 楼 qwerty123220 2015-01-13  
另外,这是现在对未修改过的原文件转换的处理结果。
由于不懂英文的缘故我看不懂是什么意思,但好像还是无法成功的样子...
到底应该怎么做呢?
虽然以前学过一点编程但从未从事过相关工作的我只是一个门外汉,问了什么傻问题的话万分抱歉。
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
D:\KaiFaGongJu\Java\adt-bundle-windows-x86-20130917\sdk\platform-tools>dx -dex -
output=classes.dex D:\360downloads\huangdi7\classes_dex2jar.jar
error: no command specified
usage:
  dx --dex [--debug] [--verbose] [--positions=<style>] [--no-locals]
  [--no-optimize] [--statistics] [--[no-]optimize-list=<file>] [--no-strict]
  [--keep-classes] [--output=<file>] [--dump-to=<file>] [--dump-width=<n>]
  [--dump-method=<name>
  • ] [--verbose-dump] [--no-files] [--core-library]
  •   [--num-threads=<n>] [--incremental] [--force-jumbo]
      [<file>.class | <file>.{zip,jar,apk} | <directory>] ...
        Convert a set of classfiles into a dex file, optionally embedded in a
        jar/zip. Output name must end with one of: .dex .jar .zip .apk. Positions
        options: none, important, lines.
      dx --annotool --annotation=<class> [--element=<element types>]
      [--print=<print types>]
      dx --dump [--debug] [--strict] [--bytes] [--optimize]
      [--basic-blocks | --rop-blocks | --ssa-blocks | --dot] [--ssa-step=<step>]
      [--width=<n>] [<file>.class | <file>.txt] ...
        Dump classfiles, or transformations thereof, in a human-oriented format.
      dx --find-usages <file.dex> <declaring type> <member>
        Find references and declarations to a field or method.
        declaring type: a class name in internal form, like Ljava/lang/Object;
        member: a field or method name, like hashCode
      dx -J<option> ... <arguments, in one of the above forms>
        Pass VM-specific options to the virtual machine that runs dx.
      dx --version
        Print the version of this tool (1.7).
      dx --help
        Print this message.
    3 楼 qwerty123220 2015-01-13  
    flycatdeng 写道
    qwerty123220 写道
    遇到错误了。

    你好,你看一下你的类中是不是有些变量没有初始化?

    是这样啊?
    的确是有一些变量没有设置初始值,因为是想修改一个安卓游戏的原因才找到这个工具的,所以手头并没有源码,是通过文本处理的方式处理的class文件...
    如果要将整个jar包所有的变量通过文本方式重新赋值的话工作就太繁重了,请问一下有没有好的方法解决这个问题呢?比如批量将.class文件转为.java什么的?
    这个游戏困扰了我几天了OTZ,不想放弃啊。
    2 楼 flycatdeng 2015-01-13  
    qwerty123220 写道
    遇到错误了。

    你好,你看一下你的类中是不是有些变量没有初始化?
    1 楼 qwerty123220 2015-01-12  
    遇到错误了。



    ...at bytecode offset 0000015a
    locals[0000]: Lcom/huangdi/h/k;
    locals[0001]: Ljava/util/ArrayList;
    locals[0002]: <invalid>
    locals[0003]: Ljava/lang/String;
    locals[0004]: <invalid>
    locals[0005]: <invalid>
    locals[0006]: <invalid>
    locals[0007]: <invalid>
    locals[0008]: <invalid>
    locals[0009]: <invalid>
    locals[000a]: <invalid>
    locals[000b]: <invalid>
    locals[000c]: <invalid>
    locals[000d]: <invalid>
    ...while working on block 0156
    ...while working on method b:()Ljava/util/List;
    ...while processing b ()Ljava/util/List;
    ...while processing com/huangdi/h/k.class

    1 error; aborting

    请问一下,这是工具的问题还是jar包的问题啊?

    相关推荐

      dex与jar相互转换工具

      这个过程通常发生在APK打包过程中,通过Android的dx工具或者后来的dx替代品,即D8或R8,将.jar文件转换成.dex文件。 5. **jd-gui工具**:描述中提到的“jd-gui”是一个用于查看.jar文件中源代码的图形界面工具。它...

      Android dx工具

      将jar包转成dex格式二进制jar包工具 同目录下命令例子: dx --dex --output=xx_dex.jar xx.jar

      安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具

      本文将详细介绍如何使用“安卓反编译apk,jar转dex,dex转jar,xml转txt,dex转tex,重打包dex,提取dex等操作工具”这一工具集来实现这些目标。 首先,让我们理解一下核心概念: 1. **APK**: Android应用程序的...

      dex转jar工具包以及jar文件查看

      在Android开发领域,有时我们需要将Dalvik执行二进制文件(.dex)转换为Java类库文件(.jar)。这通常发生在需要对dex文件进行反编译、分析或与Java项目集成时。本文将详细解释如何使用“dex转jar工具”来完成这个...

      dx (jar2dex)

      `.jar`文件通常包含已编译的Java类,而`.dex`文件则是专为Android设计的二进制格式,能够更高效地在Dalvik虚拟机上运行。由于Android应用的APK文件内部必须包含`.dex`文件,因此在打包应用时,确保所有的库和代码都...

      AndroidManifest二进制文件格式分析

      Android系统使用`dx`工具将源代码中的类文件和`AndroidManifest.xml`转换为Dalvik字节码,并将其打包成`.dex`文件。同时,`AndroidManifest.xml`被转换成一个二进制的`resources.arsc`文件,其中包含了字符串池、...

      dex2jar 最新

      由于.dex文件是二进制格式,直接阅读和理解其内容对大多数人来说非常困难。因此,反编译工具如dex2jar就显得尤为重要,它们帮助开发者逆向工程,尤其是在进行安全审计、漏洞分析或者学习其他应用的实现细节时。 dex...

      android dex2.jar

      在Android开发领域,`dex2jar`是一个非常重要的工具,它专门用于将Android应用程序的`.dex`(Dalvik Executable)文件转换成`.jar`(Java Archive)文件。这一过程通常被称为反编译,目的是为了让开发者能够查看或...

      dex2jar-0.0.9.15.zip

      在Android应用开发中,Dex文件是Dalvik Executable的缩写,它是Android系统中用于存储编译后的Java类和方法的二进制格式。 Dex文件是Android应用程序运行的基础,而Jar文件则是Java平台的标准归档文件,包含了编译后...

      dex-tool工具

      在Android应用开发中,Dex文件是一种特殊的二进制格式,它包含了应用程序的字节码,是Dalvik虚拟机或者ART运行时执行程序的基础。`dex-tools`是一个强大的命令行工具集,用于处理和分析Dex文件,它在Android SDK的...

      android的dx.bat工具

      Android的`dx.bat`工具是Android开发过程中不可或缺的一部分,它主要负责将Java的`.class`文件或者`.jar`文件转换为Dalvik Executable (DEX)格式的文件,这是Android系统运行所需的二进制代码形式。在Android应用...

      dex2jar-android

      3. 使用dex2jar命令行工具,如`dx --dex --output classes.dex.jar classes.dex`,将classes.dex转换成一个可读的JAR文件。 4. 转换完成后,可以使用Java字节码查看工具,如JD-GUI,打开生成的JAR文件,查看反编译后...

      APK反编译dex2jar-apktool打包下载

      在Android系统中,所有的应用程序都被编译成.dex文件,这是运行在Dalvik虚拟机上的二进制格式。使用dex2jar,我们可以将.dex文件解包并转换为可读的.jar文件,从而方便地查看和分析代码逻辑。例如,如果你想查看某个...

      dex-tools-2.1-SNAPSHOT.zip

      在Android系统中,DEX文件是包含应用程序代码和资源的二进制格式,它是Dalvik虚拟机执行的指令集。这款工具的主要目标是帮助开发者分析、修改和优化DEX文件,以提升应用性能或进行逆向工程。 在描述中,我们看到...

      Android10编译Launcher3所需jar包.zip

      1. **Android SDK Build Tools**: 编译过程中,Android SDK Build Tools提供了必要的工具,如`dx`用于将`.class`文件转换为Dalvik可执行格式(`.dex`),以及处理资源文件和生成APK的工具。 2. **Android Support ...

      android反编译工具 apktool-2.9.3.jar

      Apktool由IzzySoft开发,主要功能是将APK文件的二进制资源转换为人类可读的格式,便于开发者进行代码分析、资源修改或定制化操作。它支持对APK的资源文件如XML布局、图片、字符串表等进行反编译,并可以将修改后的...

      android 工具包

      7. **dexdump**: Dexdump工具用于查看和分析`.dex`文件,它是Dalvik虚拟机执行的二进制格式。它可以输出文件内容的详细信息,帮助开发者理解代码结构。 8. **apksigner**: 自Android 7.0(API级别24)起,APK签名...

      dex反编译工具,经过编译后的,可以直接使用的

      当开发者编写完Java代码并编译为.class文件后,通过DX工具或者现代的Gradle构建系统,这些.class文件会被转换成.dex文件,以便于Dalvik或ART虚拟机执行。在某些情况下,开发者可能需要对.dex文件进行反编译,以查看...

      dex文件反编译和编译工具

      在Android应用开发中,Dex文件是Dalvik虚拟机可执行的二进制格式,它包含了应用程序的字节码。本篇文章将详细讲解如何使用工具进行Dex文件的反编译与编译,以及在操作过程中需要配置的环境。 首先,我们需要了解Dex...

    Global site tag (gtag.js) - Google Analytics