【问题标题】:Error in gradle build after updating Android Studio with log4j使用 log4j 更新 Android Studio 后 gradle 构建出错
【发布时间】:2016-08-04 05:20:14
【问题描述】:

我在更新 Android Studio 和 SDK 后确实收到了这些错误:

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$2) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$3) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$4) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$5) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$6) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.ControlPanel$7) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.Main$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.chainsaw.MyTableModel$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.util.LogFileParser$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LF5SwingUtils$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$1) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$10) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$11) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$12) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$13) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$14) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$15) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$16) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$17) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$18) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$19) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$2) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$20) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$21) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$22) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$23) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$24) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$25) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$26) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$27) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(org.apache.log4j.lf5.viewer.LogBrokerMonitor$28) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a

已安装的 SDK:

所有包括转。 25.1.2

Android 工作室:

Android Studio 2.0 构建 #AI-143.2739321,构建于 2016 年 4 月 5 日 JRE:1.7.0_80-b15 amd64

项目的build.gradle文件:

apply plugin: 'com.android.application'

android {

signingConfigs {
    mulco {
        storeFile file("somePath")
        storePassword "..."
        keyAlias "..."
        keyPassword "..."
    }
}

compileSdkVersion 22
buildToolsVersion "22.0.1"

def versionPropertiesFile = file('version.properties')
if (versionPropertiesFile.canRead()) {
    def Properties versionProps = new Properties()
    versionProps.load(new FileInputStream(versionPropertiesFile))
    def code = versionProps['VERSION_CODE'].toInteger() + 1
    versionProps['VERSION_CODE'] = code.toString()
    println('count version up ' + code.toString())
    versionProps.store(versionPropertiesFile.newWriter(), null)

    defaultConfig {
        multiDexEnabled true
        signingConfig signingConfigs.mulco
        applicationId "com.test.mulcoandroid"
        minSdkVersion 19
        targetSdkVersion 22
        versionCode code
        versionName "1.03.01"
    }
} else {
    throw new GradleException("Could not read version.properties!")
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.mulco
    }
    debug {
        debuggable true
        signingConfig signingConfigs.mulco
    }
}
packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services-maps:8.4.0'
    compile project(':iCommonLibrary')
    compile project(':mulcobluetooth')
    compile project(':iScannerLibrary')
    compile project(':iPictureLibrary')
    compile 'com.android.support:multidex:1.0.1'
    testCompile "junit:junit:4.12"
    compile 'net.lingala.zip4j:zip4j:1.3.2'
}

以及依赖的iCommonLibrary:

apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    multiDexEnabled true
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

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

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
    compile 'de.greenrobot:greendao:1.3.7'
    compile 'commons-io:commons-io:2.4'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'commons-codec:commons-codec:1.10'
    compile 'de.mindpipe.android:android-logging-log4j:1.0.3'
    compile 'org.slf4j:slf4j-api:1.6.4'
    compile 'org.slf4j:slf4j-log4j12:1.6.4'
    compile 'com.google.android.gms:play-services-location:8.4.0'
    compile 'commons-net:commons-net:3.3'
    compile 'com.jjoe64:graphview:4.0.1'
    compile 'com.android.support:support-annotations:22.0.1'
}

iPictureLibrary 的 build.gradle:

apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'it.sephiroth.android.library.horizontallistview:hlistview:1.2.2'
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.jakewharton:disklrucache:2.0.2'
    compile project(':iCommonLibrary')
}

iScannerLibrary 的 build.gradle:

apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.zxing:core:3.2.1'
    compile 'com.google.zxing:android-core:3.2.1'
    compile files('libs/GrabbaSDK/Grabba driver for android v1.122.jar')
    compile project(':iCommonLibrary')
}

mulcobluetooth的build.gradle文件:

apply plugin: 'com.android.library'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

defaultConfig
{
    multiDexEnabled true
}
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'commons-io:commons-io:2.4'
}

我希望我提供了任何重要信息

如果有人知道什么...请帮助我!我在这个“NEULAND”中找不到任何东西

很抱歉,这个问题太长了...感谢任何在这里完成的人。

编辑:

我将依赖项更新为:

compile 'org.apache.logging.log4j:log4j-core:2.5'
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'org.slf4j:slf4j-log4j12:1.7.21'

但一切都没有改变。我仍然有大约 500 个构建错误....我删除了 mindpipe 作为自己编码的参考...什么也没发生!

编辑:

开票:Issue 206867

https://code.google.com/p/android/issues/detail?id=206867

编辑:

卸载 Android Studio 2.0 并再次安装 1.5.1 后,我收到以下警告:

警告:需要 Gradle 版本 2.10。当前版本是 2.8。如果使用 gradle 包装器,请尝试将 C:\Sources\iRecyApps\iRecyMulco-1.0.1iOS\gradle\wrapper\gradle-wrapper.properties 中的 distributionUrl 编辑为 gradle-2.10-all.zip

所以gradle版本更新了2...

我告诉自己当前的 gradle 版本是 2.12

我都下载了并尝试了这个:

你需要改变 File > Settings > Builds,Execution,Deployment > Build Tools > Gradle >Gradle home path

在 Mac OS 上,在 Android Studio > Preferences > Builds,Execution,Deployment > Build Tools > Gradle >Gradle home 中更改路径

或者设置 Use default gradle wrapper 并像这样编辑 Project\gradle\wrapper\gradle-wrapper.properties 文件字段 distributionUrl

根据:

"Gradle Version 2.10 is required." Error

http://tools.android.com/tech-docs/new-build-system/version-compatibility

什么都没有

【问题讨论】:

  • 我遇到同样无聊的错误。尝试使用 jdk7 从源代码重新编译我的外部 jar。到目前为止没有运气。
  • 您是否正在寻找一种即使出现此错误也能运行应用程序的方法?通常这个错误是不相关的,如果你禁用即时运行,应用程序将编译并运行良好......启用即时运行后,我无法让我的应用程序运行......
  • 我也收到这些错误。在我的情况下是325。如果我点击调试应用程序启动并且即时运行似乎也可以工作。禁用它并没有隐藏/解决错误。
  • 您找到真正的解决方案了吗?我被卡住了
  • 不,还没有......我不能;-)

标签: android android-studio build dependencies build.gradle


【解决方案1】:

通过在 Gradle 配置中将所有 com.android.support 依赖项降级到 23.1.1 解决。

【讨论】:

  • 这不是升级吗……?
  • 这似乎并不能解决目前的问题。
【解决方案2】:

我也面临同样的错误。这让我发疯,因为错误计数 > 1K。我在启用 proguard 的发布版本中遇到了这些错误。

经过一番挖掘,我发现在您的proguard-rules.pro 文件中添加-keepattributes EnclosingMethod 所有这些错误都会消失。

来源:GitHub 上的ThreadIssue #294

【讨论】:

    【解决方案3】:

    将此行添加到 proguard-rules.pro

    -keepattributes EnclosingMethod
    

    我认为,几乎所有具有 InnerClasses 的类都可能发生此错误。 (如 support.v4 等)对我来说。


    我已经测试过了 安卓工作室 2.2
    (未测试 log4j。测试 support.v4 等)

    build.gradle

    compileSdkVersion 24
    buildToolsVersion "24.0.2"
    ...
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    ...
    dependencies {
        ...
        compile 'com.android.support:support-v4:24.2.1'
    }
    

    getDefaultProguardFile('proguard-android-optimize.txt') 也可以。

    【讨论】:

    • proguard-rules.pro 在哪里?我遇到了同样的问题,但找不到这个文件。
    • @Furqan 在项目视图的“Gradle 脚本”下。文件路径为(project)/app/proguard-rules.pro
    • 相关问题 215748:AGPBI 报告错误而不是警告 请参阅 code.google.com/p/android/issues/detail?id=215748(链接自问题 206867 #8)。
    【解决方案4】:

    在我的情况下,我在启用Instant Run 时遇到了这个错误,但在禁用Instant Run 后,错误消失了。

    【讨论】:

      【解决方案5】:

      在你的项目的 proguard-rules.pro 中写下这段代码 sn-p。

      -keepattributes EnclosingMethod
      

      通过将上面的 sn-p 写入 proguard-rules.pro 文件,proguard 规则实际上改变了类的混淆方式。

      【讨论】:

        【解决方案6】:

        这对我有用,开始一个新的 Android 工作室项目 在有错误的旧项目中复制并粘贴 gradle-wrapper.properties 和 build.gradle (Project: "Project Name") - 以便升级你的 gradle

        在你的 proguard-rules.pro 中也添加这个

        -keepattributes EnclosingMethod
        

        如下更新你的 build.gradle (Module:app)

        buildTypes {
                release {
                    minifyEnabled false
                    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                }
        
            }
        
            dexOptions {
                preDexLibraries = false
            }
        

        【讨论】:

        • 我不再参与那个项​​目了。我无法测试它:-(
        猜你喜欢
        • 2013-06-12
        • 1970-01-01
        • 1970-01-01
        • 2021-02-09
        • 2015-08-17
        • 1970-01-01
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多