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

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

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