Evite que la clase se contraiga

En mi aplicación para Android tengo una clase DbHelper que extiende OrmLiteSqliteOpenHelper que extiende SQLiteOpenHelper . Ejecutar ProGuard en proyecto se completa correctamente, pero más tarde en tiempo de ejecución estoy recibiendo un error: java.lang.NoClassDefFoundError: com.example.myapp.mypackage.DbHelper

Me han añadido -keep class com.example.myapp.mypackage.** { *; } -keep class com.example.myapp.mypackage.** { *; } En proguard-project.txt para excluir mi DbHelper de encogimiento, pero esto no ayuda.

También he intentado añadir -dontshrink bandera, sólo para la prueba, para desactivar el paso de encogimiento, pero esto no ayuda demasiado.

¿Alguna sugerencia de lo que hago mal y qué probar? Gracias

UPD: Full stacktrace

  E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.example.myapp.mypackage.DbHelper at com.example.myapp.App.onCreate(App.java:78) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391) at android.app.ActivityThread.access$1300(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 

UPD 2: Para OrmLite estoy usando esta configuración

 -keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; } 

UPD 3: Estoy intentado undex classes.dex de proguarded apk con la herramienta dex2jar y mi DbHelper existe exactamente donde debería ser

UPD 4: No, esto no es aplicación de prueba, esta es la aplicación android habitual

UPD 5: Sí, DbHelper utilizar algún tipo de cosas del paquete de soporte y en las clases proguarded apk del paquete de suppord se pierde. En proguard-project.txt Tengo esta configuración para el paquete de soporte y barra de acción Sherlock

 -keep class android.support.v4.app.** { *; } -keep interface android.support.v4.app.** { *; } -keep class com.actionbarsherlock.** { *; } -keep interface com.actionbarsherlock.** { *; } 

¿Cómo puedo configurar correctamente ProGuard para evitar que el paquete de soporte se contraiga?

Muchas gracias a @gunar por ayuda. He resuelto el problema, la razón es que proguard-project.txt paquete de soporte en proguard-project.txt como -libraryjars no como -injars . Por lo tanto su contenido no se empaquetó en apk resultante y dalvik no puede inicializar DbHelper en tiempo de ejecución que utiliza clases de paquete de soporte

  • Cómo crear un archivo jar ofuscado?
  • Problema del enum de ofuscación Proguard
  • ¿Cómo configurar proguard para la interfaz javascript?
  • Construcción de ANT para Android Proguard obfuscation
  • ¿Cómo puedo obfuscate una aplicación de Android fácilmente cuando se utiliza IntelliJ IDEA?
  • La aplicación de Android se bloquea después de la ofuscación de proguard
  • Opciones de Android Proguard: Reglas más estrictas y eliminar instrucciones de registro
  • Android obfuscation código con ProGuard ... ¿cómo se sabe que ha sido ofuscado?
  • Proguard y reflexión en Android
  • Salida de la herramienta de retrabajo Proguard
  • Caída de aplicación con Proguard habilitado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.