Eclipse에서 앱을 내보낼 때 proguard를 사용했지만 logcat에 오류가 표시되지 않았지만 앱을 실행할 때 다음 오류가 발생합니다. Proguard 앱 오류
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 ...
나는 (위치를 기억하지 않는 유래 여기에 그것을 발견) 따라와 난독 구성을 사용 :
-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>;
}
그리고 project.properties 난독 그 라인에 난 그냥 주석을 사용할 수 있습니다. API 19 컴파일러를 사용하고 Jelly Bean 4.3.1에서 앱을 실행하고 위의 오류가 발생했습니다. 어떤 도움을 주셔서 감사합니다.
EDIT : 알림에 문제가 표시됩니다. 버튼을 누르면 NotificationReceiver 클래스 (BroadcastReceiver 구현, 매니페스트에서 선언 됨)가 실행되고 오류는 해당 버튼에 표시됩니다. Notification.Builder를 사용하여 알림을 만들고 addAction을 사용하여 버튼을 추가했습니다.
-keep class com.example.musicplayer. ** {*; } – Devrim
잘 작동 했으므로 난독 화되는 데이터는 적지 만 지금은 작동합니다. 고맙습니다. – Dejan