0

I enabled proguard to shrink my release apk. But my app wont install after that. Please i'ld be glad if i get some help on how to fix it. It appears it cant find a method in an app-theme-engine library i'm using.

AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.john.music, PID: 8076
java.lang.RuntimeException: Failed to get ActionView from an ActionMenuItemView: mItemData
       at com.afollestad.appthemeengine.inflation.a.i(Unknown Source)
       at com.afollestad.appthemeengine.inflation.a.h(Unknown Source)
       at com.afollestad.appthemeengine.inflation.a.setIcon(Unknown Source)
       at android.support.v7.view.menu.ActionMenuItemView.a(Unknown Source)
       at android.support.v7.widget.k.a(Unknown Source)
       at android.support.v7.view.menu.d.a(Unknown Source)
       at android.support.v7.widget.k.a(Unknown Source)
       at android.support.v7.widget.k.a(Unknown Source)
       at android.support.v7.view.menu.i.j(Unknown Source)
       at android.support.v7.view.menu.d.a(Unknown Source)
       at android.support.v7.widget.k.a(Unknown Source)
       at android.support.v7.view.menu.i.d(Unknown Source)
       at android.support.v7.view.menu.i.a(Unknown Source)
       at android.support.v7.view.menu.i.h(Unknown Source)
       at android.support.v7.a.bj.j(Unknown Source)
       at android.support.v7.a.bk.run(Unknown Source)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
       at android.view.Choreographer.doCallbacks(Choreographer.java:590)
       at android.view.Choreographer.doFrame(Choreographer.java:559)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:145)
       at android.app.ActivityThread.main(ActivityThread.java:6117)
       at java.lang.reflect.Method.invoke(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
    Caused by: java.lang.NoSuchFieldException: mItemData
       at java.lang.Class.getDeclaredField(Class.java:929)
       at com.afollestad.appthemeengine.inflation.a.i(Unknown Source) 
       at com.afollestad.appthemeengine.inflation.a.h(Unknown Source) 
       at com.afollestad.appthemeengine.inflation.a.setIcon(Unknown Source) 
       at android.support.v7.view.menu.ActionMenuItemView.a(Unknown Source) 
       at android.support.v7.widget.k.a(Unknown Source) 
       at android.support.v7.view.menu.d.a(Unknown Source) 
       at android.support.v7.widget.k.a(Unknown Source) 
       at android.support.v7.widget.k.a(Unknown Source) 
       at android.support.v7.view.menu.i.j(Unknown Source) 
       at android.support.v7.view.menu.d.a(Unknown Source) 
       at android.support.v7.widget.k.a(Unknown Source) 
       at android.support.v7.view.menu.i.d(Unknown Source) 
       at android.support.v7.view.menu.i.a(Unknown Source) 
       at android.support.v7.view.menu.i.h(Unknown Source) 
       at android.support.v7.a.bj.j(Unknown Source) 
       at android.support.v7.a.bk.run(Unknown Source) 
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777) 
       at android.view.Choreographer.doCallbacks(Choreographer.java:590) 
       at android.view.Choreographer.doFrame(Choreographer.java:559) 
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763) 
       at android.os.Handler.handleCallback(Handler.java:739) 
       at android.os.Handler.dispatchMessage(Handler.java:95) 
       at android.os.Looper.loop(Looper.java:145) 
       at android.app.ActivityThread.main(ActivityThread.java:6117) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
Bertrand Martel
  • 42,756
  • 16
  • 135
  • 159
John Smith
  • 75
  • 2
  • 9

1 Answers1

0

Solved it. I was able to find a working solution reading: How to make Proguard ignore external libraries?. I added the this to my proguard file:

-keep class javax.** { *; }
-keep class org.** { *; }
-keep class com.afollestad.** { *; }

The last one is most imortant, it's the entire theming library where some classes couldn't be found.

Community
  • 1
  • 1
John Smith
  • 75
  • 2
  • 9