错误同时整合AppDynamics:transformClassesWithMultidexlistForLiveDebug

问题描述:

我想与我通过我的gradle这个Android应用程序集成的应用程序性能监控工具无法说错误同时整合AppDynamics:transformClassesWithMultidexlistForLiveDebug

Error:Execution failed for task ':app:transformClassesWithMultidexlistForLiveDebug'. 
> java.util.NoSuchElementException (no error message) 

下面是我的gradle这个根gradle这个文件

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath 'com.appdynamics:appdynamics-gradle-plugin:4.+' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

这里是我的App的gradle文件,

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 


    defaultConfig { 
     applicationId "com.app.abc" 
     minSdkVersion 14 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1" 
     multiDexEnabled true 
    } 

    dexOptions { 
     preDexLibraries = false 
     javaMaxHeapSize "4g" 
    } 

    signingConfigs { 
     config { 
      keyAlias 'xxx' 
      keyPassword 'xxx' 
      storeFile file('xxx') 
      storePassword 'xxx' 
     } 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
     } 
     debug { 
      debuggable true 
      minifyEnabled false 
     } 
    } 

    afterEvaluate { 
     tasks.matching { 
      it.name.startsWith('dex') 
     }.each { dx -> 
      if (dx.additionalParameters == null) { 
       dx.additionalParameters = [] 
      } 
      dx.additionalParameters += "--set-max-idx-number=55000" 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/dependencies.txt' 
     exclude 'META-INF/LGPL2.1' 
    } 

    lintOptions { 
     checkReleaseBuilds false 
     // Or, if you prefer, you can continue to check for errors in release builds, 
     // but continue the build even when errors are found: 
     abortOnError false 
    } 

    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } } 
} 

dependencies { 
    ... 
    compile 'com.appdynamics:appdynamics-runtime:4.+' 
} 

我是已经启用了Multidex标志,但它在运行应用程序时仍然会出现问题。

而且,我也有我的应用程序类

@Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 

我已经尝试添加多DEX没有每DEX文件wise.I've试图用单纯只是增加multidex给人方法计数的最小或最大并能够build.And是!我也可以构建应用程序。

重大变化在afterEvaluate & incremental truedexoption

的build.gradle

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.3'  
    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 18 
     renderscriptTargetApi 18 
     //renderscriptSupportModeEnabled true 
     // To enable MultiPle dex 
     multiDexEnabled true 
    } 
    dexOptions { 
     // Option to handle multi dex 
     incremental true 
     javaMaxHeapSize "4g" // try with 2g as it worked for my case its working in both cases 
     // here 4g i got this thing from https://groups.google.com/forum/#!topic/adt-dev/P_TLBTyFWVY 
    } 
    packagingOptions { 

     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 

    } 
    signingConfigs { 
     Release { 
      keyAlias 'helloworld' 
      keyPassword 'helloworld' 
      storeFile file('../helloworld') 
      storePassword 'helloworld' 
     } 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-project.txt' 
     } 
     debug { 
      signingConfig signingConfigs.Release 
     } 
    } 
} 


dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 

     compile 'com.android.support:multidex:1.0.1' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'com.android.support:design:23.3.0' 

    compile 'com.google.android.gms:play-services-maps:8.4.0' 
    compile 'com.google.android.gms:play-services-ads:8.4.0' 
    compile 'com.google.android.gms:play-services-analytics:8.4.0' 
    compile 'com.google.code.gson:gson:2.6'  
    compile 'com.github.bumptech.glide:glide:3.7.0' 
    compile 'com.github.bumptech.glide:okhttp3-integration:[email protected]' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0'  
    compile 'com.appdynamics:appdynamics-runtime:4.+' 
} 
afterEvaluate { 
    tasks.matching { 
     it.name.startsWith('dex') 
    }.each { dx -> 
     if (dx.additionalParameters == null) { 
      dx.additionalParameters = [] 
     } 
     dx.additionalParameters += '--multi-dex' // enable multidex without giving minimum or maximum limit 
    } 
} 

应用程序的父gradle这个

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

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath 'com.appdynamics:appdynamics-gradle-plugin:4.+' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

如果上面的东西都还只是出具检查你的依赖条件的层次结构,如果在添加任何其他额外的依赖条件(您build.gradle 基于那里应该有一些其他的依赖)。不确定,但可能因为内部库冲突而不可能进一步创建dexfile或建立。

让我知道是否有任何东西