Problema Proguard para la biblioteca mupdf

Mi aplicación está funcionando bien hasta que intente crear la versión de lanzamiento. Conseguí el mensaje de error siguiente:

Java.lang.NoSuchFieldError: no hay campo con nombre = 'globals' signature = 'J' en la clase Lcom / artifex / mupdfdemo / MuPDFCore;

Aparentemente el problema está en mi biblioteca mupdf. Construí esta biblioteca en un archivo aar sin usar proguard. Aquí está mi build.gradle para la biblioteca mupdf:

apply plugin: 'android-library' android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } 

Como ve, el runProguard es falso.

Luego viene el archivo build.gradle de mi aplicación:

 apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '19.0.0' defaultConfig { minSdkVersion 9 targetSdkVersion 19 versionCode 6 versionName "2.0" } signingConfigs { } buildTypes { release { runProguard true proguardFile file('key/proguard-android.txt') } } } dependencies { compile 'com.android.support:appcompat-v7:+' compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.artifex.mupdfdemo:mupdfreader-lib:1.0.0@aar' } 

Y aquí está el archivo proguard-android.txt:

 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose -dontoptimize -dontpreverify -keepattributes *Annotation* -keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class **.R$* { public static <fields>; } -dontwarn android.support.** -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -dontwarn android.support.v7.** -keep class android.support.v7.** { *; } -keep public class com.artifex.mupdfdemo.MuPDFActivity -keep public class com.artifex.mupdfdemo.MuPDFCore 

Como ves, el MuPDFCore se agrega a mi archivo proguard. ¿Puede alguien ayudar a decir cuál es el problema? Muchas gracias.

One Solution collect form web for “Problema Proguard para la biblioteca mupdf”

Al agregar esta línea

 -keep class com.artifex.mupdfdemo.** {*;} 

resuelve el problema.

Siempre encuentro la solución para el problema después de enviar las preguntas a stackoverflow. De todos modos puede ayudar a alguien más.

  • Proguard busca los números de línea que faltan
  • Uso de Proguard con Android sin ofuscación
  • Proguard y error
  • Múltiples advertencias al crear usando Proguard
  • Proguard Error al intentar exportar a través de android studio
  • ¿Qué hace ciertas clases de android "debe-mantener"?
  • DexIndexOverflowException sólo al ejecutar pruebas
  • ¿Cuál es la diferencia entre proguard-android.txt y proguard-rules.pro? - Android
  • Proguard error: Esperando la clase seperator de ruta - no estoy seguro donde necesito poner un camino entre comillas
  • transformClassesAndResourcesWithProguardForRelease 'en Android
  • Proguard no funciona cuando se exporta con el complemento Eclipse ADT R19
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.