它在构建签名apk时显示错误

时间:2017-07-05 18:14:44

标签: android build.gradle signed-apk

当我构建apk时,它没有显示任何错误,但在生成签名的apk时,它在logcat中显示以下错误。

错误:

  Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
  referenced class java.lang.management.ManagementFactory
   Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
   referenced class java.lang.management.ThreadMXBean
   Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
   java.lang.management.RuntimeMXBean
   Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
   java.lang.management.RuntimeMXBean
  Error:Execution failed for task 
  ':app:transformClassesAndResourcesWithProguardForRelease'.
 > Job failed, see logs for details
 Warning:there were 10 unresolved references to classes or interfaces.
 Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
 referenced class java.lang.management.ManagementFactory
 Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
 referenced class java.lang.management.ThreadMXBean
 Warning:Exception while processing task java.io.IOException: Please correct 
 the above warnings first.
 Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
 java.lang.management.ManagementFactory
 Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
 java.lang.management.ManagementFactory

我的build.gradle文件是:

apply plugin: 'com.android.application'

android {     compileSdkVersion 23     buildToolsVersion '25 .0.0'

defaultConfig {
    applicationId "com.infinity.wall_to_paper"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    buildTypes{
        debug{
            debuggable true
        }
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}
packagingOptions {
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENCE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENCE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/licence.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
}

}

    dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile('com.android.support:appcompat-v7:23.4.0') {
    exclude module: 'support-v4'
}
compile('com.android.support:support-v4:23.4.0') {
    exclude module: 'support-v4'
}
android {
    buildTypes {
        debug {
            debuggable true
        }
    }
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services-ads:10.2.4'
}

}

1 个答案:

答案 0 :(得分:4)

在build.gradle中查找dexOptions

dexOptions {
    incremental true
    javaMaxHeapSize "4g"
    }

注释掉这一行: incremental true

默认情况下,在2.1.0-rc1(2016/4/22)或更高版本中打开了Java编译。因此,在build.gradle文件中声明它是多余的。 有关详细信息,请查看以下内容:https://stackoverflow.com/a/37540467/5192105

打开 proguard-project.txt (配置文件)并添加。

-dontwarn sun.reflect.**
-dontwarn android.test.**

希望这有帮助。

要禁用此功能:

Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
 referenced class java.lang.management.ManagementFactory
Warning:org.junit.internal.runners.statements.FailOnTimeout: can't find 
referenced class java.lang.management.ThreadMXBean
Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
java.lang.management.RuntimeMXBean
Warning:org.junit.rules.DisableOnDebug: can't find referenced class 
java.lang.management.RuntimeMXBean
Error:Execution failed for task 
':app:transformClassesAndResourcesWithProguardForRelease'.

打开proguard.pro并添加:

-dontwarn java.lang.management.**