Question

I used proguard when exporting app on eclipse, logcat showed no errors, but when i run app i get following errors.

java.lang.NullPointerException
    at hn.<init>(Unknown Source)
    at hp.<init>(Unknown Source)
    at hc.a(Unknown Source)
    at hc.<init>(Unknown Source)
    at hb.<init>(Unknown Source)
    at hb.<init>(Unknown Source)
    at com.example.musicplayer.SongManager.c(Unknown Source)
    at com.example.musicplayer.SongManager.b(Unknown Source)
    at com.example.musicplayer.SongManager.e(Unknown Source)
    at jr.onClick(Unknown Source)
    at android.view.View.performClick(View.java:4247)
    at android.view.View$PerformClick.run(View.java:17728)
    etc ...

I used followin proguard configuration (found it here on stackoverflow don't remember where):

-injars      bin/classes
-injars      libs
-outjars     bin/classes-processed.jar
-libraryjars C:/eclipse/sdk/platforms/android-19/android.jar

-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.content.Context {
   public void *(android.view.View);
   public void *(android.view.MenuItem);
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

And to use it I just uncommented in project.properties that line for proguard. I use API 19 compiler and I run app on Jelly Bean 4.3.1, and received errors above. Any help appreciated.

EDIT: Problem appears in Notification, when i press button on it, it fires intent to NotificationReceiver class (implementing BroadcastReceiver, declared in manifest), and error is on those buttons. I used Notification.Builder to create notification, and addAction to add those buttons.

Was it helpful?

Solution

Add this line to your proguard conf file, so your classes under com.example.musicplayer package won't be obfuscated.

-keep class com.example.musicplayer.** { *; } 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top