标签: dex

将DEX反编译成Java源代码

如何将Android DEX(VM字节码)文件反编译成相应的Java源代码?

java android reverse-engineering decompiler dex

697
推荐指数
13
解决办法
50万
查看次数

无法执行dex:多个dex文件定义Lcom/myapp/R $数组;

由于更新到ADT14,我无法再建立我的项目.在更新之前,它正在建设中.

错误:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Run Code Online (Sandbox Code Playgroud)

有类似的问题已经报道,我已经尝试过那里的建议,包括

  • 重新启动Eclipse.
  • 清理项目并重建 - 禁用"Project-> Build Automatically"选项,然后选择"Clean"和"Build"项目,然后尝试运行.将"自动构建"选项重置为"开"
  • 重新安装Android开发人员工具
  • 重新安装Eclipse(更新到最新版本3.7.1)
  • 创建了从文件系统导入的新项目
  • 从subversion创建了一个新项目.

eclipse android adt dex android-sdk-tools

388
推荐指数
26
解决办法
45万
查看次数

无法执行dex:方法ID不在[0,0xffff]:65536中

我以前见过各种版本的dex erros,但这个版本是新的.清理/重启等无济于事.图书馆项目似乎完好无损,依赖似乎正确联系在一起.

Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

要么

Cannot merge new index 65950 into a non-jumbo instruction
Run Code Online (Sandbox Code Playgroud)

要么

java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

tl;博士:Google的官方解决方案终于来了!

http://developer.android.com/tools/building/multidex.html

只有一个小提示,你可能需要这样做以防止在执行dex-ing时内存不足.

dexOptions {
        javaMaxHeapSize "4g"
}
Run Code Online (Sandbox Code Playgroud)

还有一种巨型模式可以以不太可靠的方式解决这个问题:

dexOptions {
        jumboMode true
}
Run Code Online (Sandbox Code Playgroud)

更新:如果您的应用程序很胖并且您的主应用程序中有太多方法,则可能需要按照应用程序重新设置应用程序

http://blog.osom.info/2014/12/too-many-methods-in-main-dex.html

android dex

341
推荐指数
7
解决办法
14万
查看次数

无法合并dex

我有Android Studio Beta.我创建了一个新项目,编译我的旧模块,但是当我尝试启动应用程序时,它没有启动消息:

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
Run Code Online (Sandbox Code Playgroud)

com.android.builder.dexing.DexArchiveMergerException:无法合并dex

但我不知道如何解决这个错误.我用谷歌搜索了几个小时但没有成功.

我的项目是:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta6'
        classpath "io.realm:realm-gradle-plugin:3.7.1"
        classpath 'com.google.gms:google-services:3.1.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

我的应用程序gradle:

    apply plugin: 'com.android.application'

android …
Run Code Online (Sandbox Code Playgroud)

android dex android-studio-3.0

296
推荐指数
16
解决办法
35万
查看次数

什么是Android中的.dex文件?

我有一些关于dex文件的问题

  • dexAndroid中的文件是什么?
  • dex如何为Android工作?
  • 它们如何用于调试Android应用程序?
  • 它们与java类文件类似吗?

我需要具体的信息请帮忙,欢迎任何真实的例子!

android dex

181
推荐指数
3
解决办法
14万
查看次数

Android dex在构建时会产生BufferOverflowException

在编译特定的Android项目时,只在我的Windows机器上,我java.nio.BufferOverflowException从dex 获得了一个.使用Eclipse和使用Ant时都会出现问题.

使用Ant时的输出是:

...
  [dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar
  [dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex...
   [dx]
   [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
   [dx] java.nio.BufferOverflowException
   [dx]     at java.nio.Buffer.nextPutIndex(Buffer.java:499)
   [dx]     at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
   [dx]     at com.android.dex.Dex$Section.writeShort(Dex.java:818)
   [dx]     at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
   [dx]     at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
   [dx]     at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
   [dx]     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
   [dx]     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
   [dx]     at com.android.dx.command.dexer.Main.run(Main.java:230)
   [dx]     at com.android.dx.command.dexer.Main.main(Main.java:199)
   [dx]     at com.android.dx.command.Main.main(Main.java:103)

BUILD FAILED
C:\Users\Jaap\android-sdks\tools\ant\build.xml:892: The following error occurred while …
Run Code Online (Sandbox Code Playgroud)

android dex

174
推荐指数
7
解决办法
11万
查看次数

如何缩小代码 - dex中的65k方法限制

我有一个相当大的Android应用程序,它依赖于许多库项目.Android编译器对每个.dex文件有65536个方法的限制,我超过了这个数字.

当你达到方法限制时,你可以选择两种途径(至少我知道).

1)缩小你的代码

2)构建多个dex文件(参见此博文)

我调查了两个并试图找出导致我的方法计数变得如此之高的原因.Google Drive API占据了Guava依赖的最大块,超过12,000.Drive API v2的总库存超过23,000!

我想我的问题是,你认为我该怎么做?我应该删除Google云端硬盘集成作为我应用的功能吗?有没有办法缩小API(是的,我使用proguard)?我应该采用多重dex路由(看起来相当痛苦,尤其是处理第三方API)?

android guava dex google-drive-api android-multidex

90
推荐指数
6
解决办法
5万
查看次数

是否可以反编译Android .apk文件?

用户是否能够将我的应用程序的apk文件转换回实际代码?如果他们这样做 - 有什么办法可以阻止这种情况吗?

obfuscation android decompiling apk dex

83
推荐指数
2
解决办法
10万
查看次数

如何提取apk文件的代码

实际上我试图提取一个名为cloudfilz.apk的.apk文件的代码,并想在其源代码中操作,所以我按照下面给出的步骤: -

创建一个新的文件夹并放入.apk文件(你要解码)现在重命名这个扩展名为.zip的.apk文件(例如:从filename.apk重命名为filename.apk.zip)并保存它..现在你得到了类.dex文件等...在这个阶段你可以看到drawable而不是xml和java文件......所以继续......

第2步:

现在解压缩此zip文件在同一个文件夹中(在这个例子或case NEW FOLDER).现在从这个链接http://code.google.com/p/dex2jar/下载dex2jar 并将其解压缩到同一个文件夹(在本例中为NEW FOLDER).....现在打开命令提示符并到达该文件夹(在这个案例NEW FOLDER)....在达到写"dex2jar classes.dex"并按下回车.....现在你得到同一文件夹中的classes.dex.dex2jar文件......

=>问题: - 我成功实现了第1步,但是在第2步,当我执行dex2jar classes.dex时java.lang.UnsupportedClassVersionError,我在命令提示符上出现错误,我知道这是由于我安装的jdk版本和classes.dex jdk版本号之间的不兼容所以卡在这里,dnt出路......

java android dex

73
推荐指数
2
解决办法
21万
查看次数

在Android和Gradle中使用SimpleXML

我在使用SimpleXML尝试使用Gradle 0.5.+和Android Studio编译Android应用程序时遇到了麻烦.

这是错误:

Gradle: Execution failed for task ':MyApplication:dexDebug'.
> Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/android-4.2.2/dx --dex --output <REALLY_LONG_STRING.....>
  Error Code:
    1
  Output:
    trouble processing "javax/xml/stream/events/StartElement.class":
    Ill-advised or mistaken usage of a core class (java.* or javax.*)
    when not building a core library.
    This is often due to inadvertently including a core library file
    in your application's project, when using an IDE (such as
    Eclipse). If you are sure you're not intentionally defining a
    core class, then this is …
Run Code Online (Sandbox Code Playgroud)

android gradle dex simple-framework android-studio

58
推荐指数
2
解决办法
2万
查看次数