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
Post a Comment