标签: dex-limit

Android ART运行时是否与Dalvik具有相同的方法限制限制?

Android ART运行时是否与Dalvik具有相同的方法限制限制?目前,主要dex文件中有64k方法的限制

android dalvik dex-limit art-runtime

41
推荐指数
2
解决办法
9507
查看次数

按包显示dex方法计数

我正在开发针对dex方法计数限制运行的Android应用程序.有没有一种简单的方法来显示按包分组的方法计数?我可以得到总方法数,但我的应用程序有多个组件,我试图找出哪个组件是最大的贡献者.

android dex dex-limit

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

达到65k Dex方法限制,但dex-method-count工具表示少得多

我们长期以来一直在努力应对65k方法限制,并且已经完成了大部分优化工作.现在我正在尝试添加Jacoco插件,我再次得到dex限制错误:

Error:Execution failed for task ‘:MyProject:dexExternalBetaDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Users/orrieshannon/Code/sdk/sdk/build-tools/21.1.1/dx --dex --no-optimize --output /Me/MyProject/build/intermediates/dex/externalBeta/debug --input-list=/Me/MyProject/build/intermediates/tmp/dex/externalBeta/debug/inputList.txt
  Error Code:
    2
  Output:
    objc[80218]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexIndexOverflowException: Cannot merge new index 66105 into a non-jumbo instruction!
        at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)
        at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)
        at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)
        at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
        at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
        at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)
        at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:842)
        at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:813)
        at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:786)
        at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:682)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:542)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) …
Run Code Online (Sandbox Code Playgroud)

android dex dex-limit

7
推荐指数
1
解决办法
2528
查看次数

如何使用Proguard缩小Android代码

由于我在我的应用程序中使用了很多依赖项,因此我达到了65k方法限制(我达到了76k方法).我在android.developer上读过,proguard用于缩小代码.

那么 - proguard只会缩小我的应用程序代码还是缩小我的依赖项代码呢?使用proguard缩小代码时,是否需要警惕某些事情?我怎么做?

我的Gradle Build:

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "some.Path"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
}

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

configurations {
compile.exclude group:  'org.apache.xmlbeans'
}

repositories {
maven { url "https://jitpack.io" } …
Run Code Online (Sandbox Code Playgroud)

android dex-limit android-proguard

0
推荐指数
1
解决办法
3118
查看次数

标签 统计

android ×4

dex-limit ×4

dex ×2

android-proguard ×1

art-runtime ×1

dalvik ×1