Проблема Progaurd «Предупреждение: игнорирование атрибута InnerClasses для анонимного внутреннего класса»

Я не знаю, как я могу описать эту проблему. Я много искал, но я не нашел решения.

Кроме того, это решение не помогло мне -keepattributes EnclosingMethod :

dependencies { compile project(':libraries:material-drawer') compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.0' compile 'com.android.support:recyclerview-v7:23.2.0' compile 'com.android.support:design:23.2.0' compile 'com.google.code.gson:gson:2.4' compile 'com.mcxiaoke.volley:library:1.0.19' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'de.greenrobot:eventbus:2.4.0' compile 'com.commit451:PhotoView:1.2.4' compile 'com.nineoldandroids:library:2.4.0' compile 'com.viewpagerindicator:viewpagerindicator:2.4.3' compile('com.github.afollestad.material-dialogs:commons:0.8.5.6@aar') { transitive = true } compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; } } 

Папка jar содержит ormlite-android-4.48.jar и ormlite-core-4.48.jar .

Файл Progaurd:

 -keepattributes EnclosingMethod -dontobfuscate -keep public class * extends android.support.v4.view.ActionProvider { public <init>(android.content.Context); } -dontwarn android.support.v4.** #FOR APPCOMPAT 23.1.1: -keep class !android.support.v7.view.menu.*MenuBuilder*, android.support.v7.** { *; } -keep interface android.support.v7.* { *; } # Required for crashlytics #-keep class com.crashlytics.** { *; } #-keep class com.crashlytics.android.** -keepattributes SourceFile,LineNumberTable,*Annotation* # Required for eventbus -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe <methods>; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } -keepclassmembers class ** { public void onEvent*(**); } # OrmLite uses reflection -keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; } # Keep the helper class and its constructor -keep class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper -keepclassmembers class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper { public <init>(android.content.Context); } # Keep all model classes that are used by OrmLite # Also keep their field names and the constructor -keep @com.j256.ormlite.table.DatabaseTable class * { @com.j256.ormlite.field.DatabaseField <fields>; @com.j256.ormlite.field.ForeignCollectionField <fields>; } -keep public class org.codehaus.** -keep public class java.nio.** ##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.packagename.database.tables.** { *; } -keep class com.packagename.models.apidata.** { *; } -keep class com.packagename.models.data.** { *; } ## Nineolddroid related classes to ignore -keep class com.nineoldandroids.animation.** { *; } -keep interface com.nineoldandroids.animation.** { *; } -keep class com.nineoldandroids.view.** { *; } -keep interface com.nineoldandroids.view.** { *; } -dontwarn okio.** 

Журнал ошибок:

 Warning:Ignoring InnerClasses attribute for an anonymous inner class this warning is that reflective operations on this class will incorrectly (android.support.v4.app.FragmentTransitionCompat21$1) that doesn't come with an (android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean$1) that doesn't come with an Warning:Ignoring InnerClasses attribute for an anonymous inner class indicate that it is *not* an inner class. Warning:Ignoring InnerClasses attribute for an anonymous inner class and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly (android.support.v4.view.ViewPropertyAnimatorCompatJB$1) that doesn't come with an and without specifying any "-target" type options. The consequence of ignoring (io.fabric.sdk.android.services.common.ExecutorUtils$1) that doesn't come with an compiler that did not target the modern .class file format. The recommended Warning:Ignoring InnerClasses attribute for an anonymous inner class associated EnclosingMethod attribute. This class was probably produced by a solution is to recompile the class from source, using an up-to-date compiler compiler that did not target the modern .class file format. The recommended compiler that did not target the modern .class file format. The recommended (android.support.v4.view.accessibility.AccessibilityNodeProviderCompatKitKat$1) that doesn't come with an indicate that it is *not* an inner class. this warning is that reflective operations on this class will incorrectly and without specifying any "-target" type options. The consequence of ignoring (android.support.v4.view.AccessibilityDelegateCompatIcs$1) that doesn't come with an solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring (android.support.v4.app.FragmentTransitionCompat21$3) that doesn't come with an solution is to recompile the class from source, using an up-to-date compiler indicate that it is *not* an inner class. solution is to recompile the class from source, using an up-to-date compiler compiler that did not target the modern .class file format. The recommended this warning is that reflective operations on this class will incorrectly associated EnclosingMethod attribute. This class was probably produced by a Warning:Ignoring InnerClasses attribute for an anonymous inner class solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring associated EnclosingMethod attribute. This class was probably produced by a indicate that it is *not* an inner class. Warning:Ignoring InnerClasses attribute for an anonymous inner class indicate that it is *not* an inner class. (android.support.v4.view.ViewPropertyAnimatorCompatKK$1) that doesn't come with an and without specifying any "-target" type options. The consequence of ignoring Warning:Ignoring InnerClasses attribute for an anonymous inner class solution is to recompile the class from source, using an up-to-date compiler this warning is that reflective operations on this class will incorrectly solution is to recompile the class from source, using an up-to-date compiler associated EnclosingMethod attribute. This class was probably produced by a Warning:Ignoring InnerClasses attribute for an anonymous inner class (android.support.v4.view.ViewPropertyAnimatorCompatICS$1) that doesn't come with an (android.support.v4.app.FragmentTransitionCompat21$4) that doesn't come with an solution is to recompile the class from source, using an up-to-date compiler this warning is that reflective operations on this class will incorrectly this warning is that reflective operations on this class will incorrectly compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler (android.support.v4.app.FragmentTransitionCompat21$2) that doesn't come with an indicate that it is *not* an inner class. this warning is that reflective operations on this class will incorrectly compiler that did not target the modern .class file format. The recommended indicate that it is *not* an inner class. solution is to recompile the class from source, using an up-to-date compiler compiler that did not target the modern .class file format. The recommended and without specifying any "-target" type options. The consequence of ignoring and without specifying any "-target" type options. The consequence of ignoring indicate that it is *not* an inner class. this warning is that reflective operations on this class will incorrectly compiler that did not target the modern .class file format. The recommended Warning:Ignoring InnerClasses attribute for an anonymous inner class this warning is that reflective operations on this class will incorrectly compiler that did not target the modern .class file format. The recommended Warning:Ignoring InnerClasses attribute for an anonymous inner class indicate that it is *not* an inner class. associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended associated EnclosingMethod attribute. This class was probably produced by a indicate that it is *not* an inner class. and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly Warning:Ignoring InnerClasses attribute for an anonymous inner class this warning is that reflective operations on this class will incorrectly (android.support.v4.view.AccessibilityDelegateCompatJellyBean$1) that doesn't come with an Warning:Ignoring InnerClasses attribute for an anonymous inner class associated EnclosingMethod attribute. This class was probably produced by a associated EnclosingMethod attribute. This class was probably produced by a and without specifying any "-target" type options. The consequence of ignoring (android.support.v4.view.ViewCompatLollipop$1) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a solution is to recompile the class from source, using an up-to-date compiler Warning:Ignoring InnerClasses attribute for an anonymous inner class compiler that did not target the modern .class file format. The recommended indicate that it is *not* an inner class. this warning is that reflective operations on this class will incorrectly Warning:Ignoring InnerClasses attribute for an anonymous inner class indicate that it is *not* an inner class. associated EnclosingMethod attribute. This class was probably produced by a this warning is that reflective operations on this class will incorrectly indicate that it is *not* an inner class. solution is to recompile the class from source, using an up-to-date compiler associated EnclosingMethod attribute. This class was probably produced by a (com.android.volley.ExecutorDelivery$1) that doesn't come with an solution is to recompile the class from source, using an up-to-date compiler compiler that did not target the modern .class file format. The recommended and without specifying any "-target" type options. The consequence of ignoring associated EnclosingMethod attribute. This class was probably produced by a and without specifying any "-target" type options. The consequence of ignoring indicate that it is *not* an inner class. compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring indicate that it is *not* an inner class. this warning is that reflective operations on this class will incorrectly associated EnclosingMethod attribute. This class was probably produced by a associated EnclosingMethod attribute. This class was probably produced by a (io.fabric.sdk.android.services.common.ExecutorUtils$2) that doesn't come with an Warning:Ignoring InnerClasses attribute for an anonymous inner class compiler that did not target the modern .class file format. The recommended associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended and without specifying any "-target" type options. The consequence of ignoring Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type int using a local variable of type android.support.design.widget.CoordinatorLayout$LayoutParams. This is symptomatic of .class transformation tools that ignore local variable information. 

Журнал остальной ошибки:

 Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.commit451/PhotoView/1.2.4/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.crashlytics.sdk.android/crashlytics-core/2.3.8/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.github.afollestad.material-dialogs/commons/0.8.5.6/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.github.afollestad.material-dialogs/core/0.8.5.6/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.viewpagerindicator/viewpagerindicator/2.4.3/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/support-v4/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.4.0/5b72bf48563ea8410e650de14aa33ff69a3e8c35/okio-1.4.0.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.crashlytics.sdk.android/answers/1.3.6/jars/classes.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/e9b63380f3a242dbdbf103a2355ad7e43bad17cb/library-2.4.0.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/io.fabric.sdk.android/fabric/1.3.10/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.crashlytics.sdk.android/crashlytics/2.5.5/jars/classes.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.4/695b63d702f505b9b916e02272e3b6381bade7f/gson-2.4.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.crashlytics.sdk.android/beta/1.1.4/jars/classes.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.mcxiaoke.volley/library/1.0.19/a8f23f65fc1e522ee4a1a697ee569901a46741fa/library-1.0.19.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.squareup.picasso/picasso/2.5.2/7446d06ec8d4f7ffcc53f1da37c95f200dcb9387/picasso-2.5.2.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.mikepenz/iconics/1.6.2/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/transforms/mergeJavaRes/release/jars/2/1f/main.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/AppName.libraries/material-drawer/unspecified/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/support-v4/23.2.0/jars/libs/internal_impl-23.2.0.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/support-vector-drawable/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/design/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.android.support/animated-vector-drawable/23.2.0/jars/classes.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/com.mikepenz/iconics-core/1.6.2/jars/classes.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp/okhttp/2.4.0/40340c0748190fe897baf7bffbc1b282734294e5/okhttp-2.4.0.jar] (filtered) Copying resources from program jar [/home/ibrahim/.gradle/caches/modules-2/files-2.1/de.greenrobot/eventbus/2.4.0/ddd166d01b3158d1c00576d29f7ed15c030df719/eventbus-2.4.0.jar] (filtered) Copying resources from program jar [path/to/application/app/build/intermediates/exploded-aar/me.zhanghai.android.materialprogressbar/library/1.1.4/jars/classes.jar] (filtered) 

Попробуйте добавить

 -keepattributes InnerClasses -dontoptimize 

В конфигурацию ProGuard. Это должно решить проблему.

Вероятно, применяются несовместимые оптимизации (что, вероятно, приводит к последней строке журнала ошибок).

Если вы хотите разрешить оптимизацию, необходимо настроить конфигурацию оптимизации с помощью

 -optimizations optimization_filter 

В конфигурации ProGuard.

Добавление этих строк в файл proguard-rules.pro исправило мою проблему.

 -keepattributes EnclosingMethod -keepattributes InnerClasses 

Я предлагаю -dontwarn InnerClasses

У вас здесь две проблемы.

1) Warning:Ignoring InnerClasses attribute for an anonymous inner class ......

Это просто предупреждение. Если ваш код работает правильно, вы можете игнорировать его, отключив Lint в файле .gradle :

 android { ... lintOptions { abortOnError false } } 

2) translation error: attempt to set or access a value of type int using a local variable of type android.support.design.widget.CoordinatorLayout$LayoutParams

Это похоже на то, что ProGuard оптимизирует распределение переменных, но делает это неправильно.

Попробуйте отключить эту оптимизацию, добавив строку в файл ProGuard:

-optimizations !code/allocation/variable

Добавьте dex.force.jumbo=true в ваш gradle.properties. Меня устраивает.

Я заметил, что часто причиной этой проблемы является то, что файл proguard-android.txt не упоминается в проекте, так как он содержит правильную конфигурацию, чтобы избежать этой проблемы:

 # Preserve some attributes that may be required for reflection. -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod 

Решение

Обязательно добавьте этот файл в свой проект вместе со своими конфигурационными файлами ProGuard, например:

 release { minifyEnabled true setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro']) } 

Файл содержится в SDK, поэтому ваш сборник град автоматически подберет его, вам не нужно будет копировать его в свой проект.

Я разрешил подобную проблему, обновив версию SDK для SDK, целевую версию SDK и версию поддерживаемых библиотек.

Intereting Posts
Свойство marginRight не работает Как установить твиттер-комплект с помощью плагина для ткани в андроид-студии Передать параметры / параметры adb для задач градиента android (install, connectedCheck и т. Д.) Круговой макет Android GCM SERVICE_NOT_AVAILABLE Настройка RxJava для отправки данных в действие из GCMListenerService Как сделать селектор в андроид-студии Есть ли способ запросить определенный тип приложений, поддерживающих Intent Filter? Android – разделитель между элементами в вертикальном макете Проблема вертикального выравнивания виджета Android UI Android Warning: Окно уже сфокусировано, игнорируя усиление фокуса Как отформатировать предложение WHERE и?? В SQLite-запросе? Есть ли способ создать службу фонового процесса, которая будет запускаться независимо от того, создано ли приложение, оно еще работает? Как очистить уведомления с помощью оболочки ADB Android: Выполнение телефонного звонка с виджета главного экрана