java - NoClassDefFoundError Proguard Activity -


i'm using proguard obfuscate android app. works except 1 activity.

java.lang.noclassdeffounderror: com.myapp.android.mediaactivity 

when don't use proguard activity working fine. have issue when using proguard.

my activity declared on androidmanifest , others activity working fine, have issue on particular one.

here proguard config :

-dontpreverify -repackageclasses '' -allowaccessmodification -optimizations !code/simplification/arithmetic -keepattributes *annotation*  -keep class com.myapp.android.mediaactivity { *; }  -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 * implements android.os.parcelable {     static android.os.parcelable$creator creator; }  -keepclassmembers class **.r$* {     public static <fields>; }  -keepclassmembers class * {     @android.webkit.javascriptinterface <methods>; }  # keep - enumerations. keep special static # methods required in enumeration classes. -keepclassmembers enum  * {     public static **[] values();     public static ** valueof(java.lang.string); }  # want keep methods in activity used in xml attribute onclick -keepclassmembers class * extends android.app.activity {    public void *(android.view.view); }   # keep setters in views animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.view {    void set*(***);    *** get*(); }  # want keep methods in activity used in xml attribute onclick -keepclassmembers class * extends android.app.activity {    public void *(android.view.view); }  # enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations -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>; } 

as can see i've add specific line try make work, it's not :

-keep class com.myapp.android.mediaactivity { *; } 

edit : here imports of mediaactivity :

import android.annotation.targetapi; import android.app.activity; import android.content.intent; import android.os.build; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmenttransaction; import android.support.v7.widget.toolbar; import android.view.view; import android.widget.textview;  import com.myapp.android.fragment.places.fragmentsupportplacesbase; import com.myapp.android.fragment.grid.basecursorgridfragmentsupport; import com.myapp.android.fragment.grid.supportscreenshotcursorgridfragment; import com.myapp.android.fragment.grid.supporttimelinecursorgridfragment; import com.myapp.android.model.place; import com.myapp.android.model.selectedinfo;  import java.util.arraylist; import java.util.list; 

does ideas why it's occurring , how can fix ?

thanks antonio pointing me in right direction. activity implementing interface placescallbacks (for no reason)

public interface placescallbacks{     void onplaceselected(long quadkey, short zoomlevel);     void onplaceselected(place place); } 

however interface wasn't used in activity, , neither anywhere in app, , method implemented left empty.

so guess proguard remove interface because it's wasn't used anywhere, implemented in activity.

all had deleting interface.


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -