错误:警告:忽略匿名内部类的 InnerClasses 属性

Posted

技术标签:

【中文标题】错误:警告:忽略匿名内部类的 InnerClasses 属性【英文标题】:Error:warning: Ignoring InnerClasses attribute for an anonymous inner class 【发布时间】:2017-02-12 14:10:29 【问题描述】:

请帮助我,我搜索了很多,但找不到任何解决此错误的方法。

build.gragle:

 apply plugin: 'com.android.application'

    android 
        signingConfigs 
            config 
                keyAlias 'leadtrak'
                keyPassword 'leadtrak1'
                storeFile file('/home/sheraz/AndroidStudioProjects/LeadTrak/LeadTrack/docs/LeadTrakKeyStore.jks')
                storePassword 'leadtrak1'
            
        
        compileSdkVersion 24
        buildToolsVersion "24.0.1"
        useLibrary 'org.apache.http.legacy'
        defaultConfig 
            applicationId "leadtrak.activities"
            minSdkVersion 9
            targetSdkVersion 9
        
        buildTypes 
            release 
                signingConfig signingConfigs.config
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'


            
        
        lintOptions 
            checkReleaseBuilds false
            abortOnError false
        

    


    dependencies 

        compile 'com.android.support:support-v4:24.2.1'
        compile 'com.google.android.gms:play-services:+'
        compile files('libs/acra-4.4.0.jar')
        compile files('libs/commons-codec.jar')
        compile files('libs/ksoap2.jar')
        compile files('libs/sqlcipher.jar')
        compile files('libs/twilioclient-android.jar')
        compile files('libs/zip4j_1.3.1.jar')
    

错误日志:

错误:警告:忽略匿名内部的 InnerClasses 属性 类错误:(net.lingala.zip4j.util.ArchiveMaintainer$1) 没有 带有一个错误:关联的 EnclosureMethod 属性。这节课 可能是由没有针对 现代 .class 文件格式。推荐的错误:解决方案是 使用最新的编译器从源代码重新编译类 错误:并且没有指定任何“-target”类型选项。这 忽略错误的后果:这个警告是反光的 对这个类的操作会出错 Error:indicate that it is 不是内部类。错误:(net.lingala.zip4j.unzip.Unzip$1) 不带有错误:关联的 EnclosureMethod 属性。 这个类可能是由一个错误产生的:编译器没有 以现代 .class 文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且没有指定任何“-target”类型选项。这 忽略错误的后果:这个警告是反光的 对这个类的操作会出错 Error:indicate that it is 不是内部类。错误:(net.lingala.zip4j.unzip.Unzip$2) 不带有错误:关联的 EnclosureMethod 属性。 这个类可能是由一个错误产生的:编译器没有 以现代 .class 文件格式为目标。推荐的错误:解决方案 是使用最新的编译器从源代码重新编译类 错误:并且没有指定任何“-target”类型选项。这 忽略错误的后果:这个警告是反光的 对这个类的操作会出错 Error:indicate that it is 不是内部类。 错误:(net.lingala.zip4j.util.ArchiveMaintainer$2) 没有出现 带有错误:关联的 EnclosureMethod 属性。这堂课是 可能由不针对现代的错误:编译器产生 .class 文件格式。推荐的错误:解决方法是重新编译 源代码类,使用最新的编译器错误:并且没有 指定任何“-target”类型选项。忽视的后果 错误:此警告是此类上的反射操作将 错误地错误:表明它不是一个内部类。 错误:警告:忽略匿名内部的 InnerClasses 属性 类错误:(net.lingala.zip4j.zip.ZipEngine$1) 不附带 一个错误:关联的 EnclosureMethod 属性。这堂课大概是 由不针对现代 .class 的错误:编译器生成 文件格式。推荐的错误:解决方法是重新编译类 从源代码,使用最新的编译器错误:并且没有指定 任何“-target”类型选项。忽略错误的后果:this 警告是此类上的反射操作将错误地 错误:表明它不是一个内部类。错误:数量 .dex 文件中的方法引用不能超过 64K。了解如何 解决这个问题 https://developer.android.com/tools/building/multidex.html 错误:任务执行失败 ':app:transformClassesWithDexForRelease'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:进程'命令 '/usr/lib/jvm/java-8-oracle/bin/java'' 以非零退出完成 值 2

【问题讨论】:

这是完整的buid.gradle吗? 是的,这已经完成了。 @Haroon 你从@Vivek Mishra 得到了答案 你的问题解决了吗? 是的,我的问题解决了。非常感谢:) 【参考方案1】:

我认为这是你的主要问题

.dex 文件中方法引用的数量不能超过 64K。

要解决此问题,请将以下几行放入您的应用级 gradle 文件

将此行放入 defaultConfig

multiDexEnabled true

并添加以下依赖项

compile 'com.android.support:multidex:1.0.1'

在此之后重建您的项目。希望这能解决您的错误。

并尝试在项目中添加依赖项时避免使用 + 符号,就像使用播放服务依赖项一样

要删除 OutOfMemory 错误,请将其添加到应用级 gradle 文件中的 android block 中。

dexOptions 
    //incremental true
    javaMaxHeapSize "4g"

【讨论】:

感谢您的回答。尝试您的解决方案后,我收到此错误。错误:java.lang.OutOfMemoryError:超出 GC 开销限制 非常感谢 :) 解决了我的问题 非常好的答案。注意incremental true 已弃用,可以注释掉【参考方案2】:

你能不能替换检查一下

    defaultConfig 
        applicationId "leadtrak.activities"
        minSdkVersion 9
        targetSdkVersion 9
        multiDexEnabled true
    
        dexOptions 
     javaMaxHeapSize "4g"

     

     signingConfigs 
        release 
            keyAlias 'leadtrak'
            keyPassword 'leadtrak1'
            storeFile file('/home/sheraz/AndroidStudioProjects/LeadTrak/LeadTrack/docs/LeadTrakKeyStore.jks')
            storePassword 'leadtrak1'
        
    

     buildTypes 
        release 
            signingConfig signingConfigs.release
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-   android.txt'), 'proguard-rules.txt'


        
    

   dependencies 
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/acra-4.4.0.jar')
    compile files('libs/commons-codec.jar')
    compile files('libs/ksoap2.jar')
    compile files('libs/sqlcipher.jar')
    compile files('libs/twilioclient-android.jar')
    compile files('libs/zip4j_1.3.1.jar')

【讨论】:

我找不到这个和我的 gradle 之间的区别。【参考方案3】:

从 SVN 签出项目时遇到类似的错误

当 SVN 完成检查时,Android Studio 询问我是否想将其创建为一个项目,然后我单击“是”,结果发现它已经是一个项目,并试图使其成为项目中的一个项目,这破坏了 Gradle构建它的能力 - 但是检查项目并打开文件夹对我有用

【讨论】:

以上是关于错误:警告:忽略匿名内部类的 InnerClasses 属性的主要内容,如果未能解决你的问题,请参考以下文章

Proguard 问题“警告:忽略匿名内部类的 InnerClasses 属性”

android Dx 警告:忽略匿名内部类 jar 文件问题的 InnerClasses 属性

匿名类的定义,使用场景和使用方式

Java内部类详解(含:成员内部类局部内部类匿名内部类静态内部类)

Android Gradle Plugin 2.2.0 ProGuard 开始保留内部类

java-内部类