Fix “Ignoring InnerClasses attribute” warning
Asked Answered
H

1

8

I would like to fix this warning that give me each build this output:

Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.Native$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:(com.sun.jna.NativeLibrary$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:(com.sun.jna.NativeLibrary$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:(com.sun.jna.Structure$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:(com.sun.jna.win32.W32APITypeMapper$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:(com.sun.jna.win32.W32APITypeMapper$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.

I have already tried the other solution given on these questions:

This is my build.gradle file:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'

android {

    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.example.marco.myapp"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

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

    lintOptions {
        abortOnError false
    }

    dexOptions {
        preDexLibraries true
        javaMaxHeapSize "3g"
        incremental true
        dexInProcess = true
    }

    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
        exclude 'META-INF/maven/com.google.guava/guava/pom.properties'
        exclude 'META-INF/maven/com.google.guava/guava/pom.xml'
    }

}

dependencies {
    compile files('libs/slf4j-api-1.7.5.jar')

    //include jar libraries -> rstincanoffline dependencies
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/slf4j-jdk14-1.7.5.jar')
    compile files('libs/tincan-0.3.1-SNAPSHOT-jar-with-dependencies-jarjar.jar')

    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'

    // stetho -> for debug purpose
    compile 'com.facebook.stetho:stetho:1.3.1'
    compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'
    compile 'com.facebook.stetho:stetho-js-rhino:1.3.1'

    //gson dependency
    compile 'com.google.code.gson:gson:2.4'

    //google autovalue dependencies
    //apt 'com.google.auto.value:auto-value:1.1'
    compile 'com.google.auto.value:auto-value:1.2'
    apt 'com.google.guava:guava:19.0'
    provided 'org.glassfish:javax.annotation:10.0-b28'
    apt 'com.google.code.findbugs:jsr305:2.0.1'
    apt 'com.google.auto.service:auto-service:1.0-rc2'
    apt 'com.sun.jna:jna:3.0.9'

    //picasso dependency
    compile 'com.squareup.picasso:picasso:2.5.2'

    //realm dependency
    compile 'io.realm:realm-android:0.83.0+'
}

If someone could help me that would be great!

Hypogeous answered 22/6, 2016 at 9:30 Comment(10)
Did this happen on release or debug?Taranto
Have you found a solution? I am facing a similar situation in Android Studio.Petulah
Yes me too, its happening on every build of the project in debug mode.Unknowable
@Unknowable did you try following this answerTaranto
@Petulah did you try following this answer. Also please make sure that you're putting it in the correct proguard rules file.Taranto
I think Mark, you're putting the -keepattributes EnclosingMethod inside the wrong ProGuard rules file. But it is also weird that you've disabled ProGuard (minifyEnabled false) and you're getting this message.Taranto
@Taranto That answer is not relevant for debug builds (where this error is occurring in Android Studio).Petulah
@Petulah does it happen in debug or release? Do you have minifyEnabled true enabled in your gradle? If so, can you share the block inside which it is written?Taranto
@Taranto Nothing of the sort in gradle debug. In fact, this is probably happening for me because of Adobe AIR library I am using in my project.Petulah
@Petulah if that library is added as a module, try this: in Build Variants (at the left side of AS, you may need to click that square/monitor at bottom left of your IDE) change the dropdown next to your library to "debug". It must be in release and causing the issue.Taranto
E
0

i solved it by changing this line in my proguard file:

-keepattributes Signature,SourceFile,LineNumberTable

to the following:

-keepattributes Signature,SourceFile,LineNumberTable,EnclosingMethod
Echovirus answered 29/12, 2023 at 7:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.