已经尝试过
-keepattributes EnclosingMethod
和-dontwarn InnerClasses
在proguard-rules.pro并没有成功:(
你们有任何提示吗?
信息:Gradle任务[:app:assembleMobilePFDebug]错误:警告: 忽略匿名内部类的InnerClasses属性 错误:(net.lingala.zip4j.util.ArchiveMaintainer $ 2)并非如此 带有错误:关联EnclosingMethod属性。这堂课是 可能是由Error:编译器产生的,不是针对现代的 .class文件格式。推荐的错误:解决方案是重新编译 来自源的类,使用最新的编译器错误:没有 指定任何" -target"类型选项。无视的后果 错误:此警告是此类的反射操作 错误错误:表示不是内部类。 错误:警告:忽略匿名内部的InnerClasses属性 class错误:(net.lingala.zip4j.util.ArchiveMaintainer $ 1)没有 带有错误:关联EnclosingMethod属性。这个班 可能是由一个错误:编译器产生的,没有针对 现代.class文件格式。建议的错误:解决方案是 使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(net.lingala.zip4j.unzip.Unzip $ 2) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(net.lingala.zip4j.unzip.Unzip $ 1) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(net.lingala.zip4j.zip.ZipEngine $ 1) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(com.samsung.android.sdk.pass.c) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(com.samsung.android.sdk.pass.d) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(com.samsung.android.sdk.pass.a) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(com.samsung.android.sdk.pass.b) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。错误:警告:忽略匿名内部类的InnerClasses属性错误:(com.samsung.android.sdk.pass.e) 并没有出现错误:关联EnclosingMethod属性。 这个类可能是由Error:编译器生成的 以现代.class文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且未指定任何" -target"类型选项。该 忽略错误的后果:这个警告就是反思 此类上的操作将错误地错误:指示它是 不是一个内部类。信息:BUILD SUCCESSFUL信息:总时间:1分钟43.541秒信息:80错误信息:0警告 信息:请参阅控制台中的完整输出
Gradle文件(主要部分):
apply plugin: 'com.android.application'
apply plugin: 'jacoco'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
dexOptions{
maxProcessCount 3
javaMaxHeapSize "2g"
}
defaultConfig {
applicationId "com.xyz"
minSdkVersion 19
targetSdkVersion 22
versionCode 1
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
multiDexEnabled true
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
testOptions {
unitTests.returnDefaultValues = true
}
task jacocoTestReport(type: JacocoReport, dependsOn: "test"){
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
reports {
xml.enabled = true
html.enabled = true
}
classDirectories = fileTree(
dir: "./build/intermediates/classes/debug",
excludes: [ '**/R*.class',
'**/*$InjectAdapter.class',
'**/*$ModuleAdapter.class',
'**/*$ViewInjector.class']
)
def coverageSourceDirs = [
"src/main/java"
]
sourceDirectories = files(coverageSourceDirs)
executionData = files("${project.buildDir}/jacoco/${jacocoTestReport}.exec")
}
productFlavors {
xyz {
applicationId "com.xyz"
versionName "1.2"
resValue "string", "app_name", "xyz"
versionCode "1"
}
}
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'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
testCompile fileTree(include: ['*.jar'], dir: 'libs/testLibs')
testCompile 'junit:junit:4.12'
androidTestCompile fileTree(include: ['*.jar'], dir: 'libs/androidTestLibs')
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'org.mockito:mockito-core:1.10.19'
compile 'me.dm7.barcodescanner:zxing:1.8.4'
compile 'com.google.code.gson:gson:2.4'
compile files('libs/zip4j_1.3.2.jar')
}
android.applicationVariants.all { variant ->
variant.javaCompile.options.compilerArgs += [
'-AresourcePackageName=com.xyz'
]
}
java -version&& javac -version
java版本" 1.7.0_71"
Java(TM)SE运行时环境(版本1.7.0_71-b14)
Java HotSpot(TM)64位服务器VM(内置24.71-b01,混合模式)
javac 1.7.0_71
答案 0 :(得分:0)
请尝试使用此行:
-keepattributes InnerClasses,EnclosingMethod,Signature
此问题与此post类似。基本上,您只需要将此行添加到proguard-rules.pro文件中:
-keepattributes EnclosingMethod