我正在尝试将应用程序性能监控工具与我的Android应用程序集成,我的gradle无法说
Error:Execution failed for task ':app:transformClassesWithMultidexlistForLiveDebug'.
> java.util.NoSuchElementException (no error message)
以下是我的gradle root 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()
}
}
这是我的应用程序的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);
}
答案 0 :(得分:0)
我已尝试添加多个dex而不提供每个dex文件的任何最小或最大方法计数。我已经尝试过简单地添加multidex并且能够构建。并且是的!我也可以构建应用程序。
重大变化发生在afterEvaluate
& incremental true
中的dexoption
。
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:1.4.0@aar'
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
packagingOptions
,那里应该有其他一些家属。)不确定但可能由于内部库冲突,它不再继续创建dexfile或build。
如果有的话,请告诉我