0
私はgoogle、stackoverflowなどでこのことを頻繁に検索しましたが、まだ完全な解決策はありませんでした。実際には私のアプリケーションがリバースエンジニアリングされないようにしたい、これを達成するために私はプロガードを使用し、プロジェクトにいくつかのルールセットを定義した。上記の一連のルールを定義した後、私の署名付きapkはスプラッシュスクリーンを超えません。 Proguard以外のソリューションがあれば、それも歓迎します。ProGuardでMy Signed APKを実行できない
proguard-rules.pro
-keep public class com.bbpos.emvswipe.* {
public *** get*();
public void set*(***);
}
-keep public class com.bbpos.wisepad.* {
public *** get*();
public void set*(***);
}
-dontwarn com.bbpos.**
-keep class com.github.mikephil.charting.** { *; }
-dontwarn io.realm.**
-keep public class * extends org.xmlpull.v1.XmlPullParser
-dontwarn org.xmlpull.**
-keep public class com.google.android.gms.cast.
framework.media.TracksChooserDialogFragment
-dontwarn com.google.android.gms.cast.framework.**
-keep class com.google.android.gms.internal.** { *; }
-dontwarn com.google.android.gms.internal.zznv
-keep class org.codehaus.jackson.map.ObjectMapper
-dontwarn org.codehaus.jackson.**
-keep class okhttp3.internal.huc.HttpURLConnectionImpl
-dontwarn okhttp3.**
-keep class java.nio.file.*
-dontwarn java.nio.file.*
-keep class org.codehaus.mojo.animal_sniffer.*
-dontwarn org.codehaus.mojo.animal_sniffer.*
-keep public class org.simpleframework.**{ *; }
-keep class org.simpleframework.xml.**{ *; }
-keep class org.simpleframework.xml.core.**{ *; }
-keep class org.simpleframework.xml.util.**{ *; }
-dontwarn org.simpleframework.xml.stream.**
logcat
W/dalvikvm: Failed processing annotation value
W/System.err: java.lang.NoSuchFieldError: APP_PREFERENCE
W/System.err: at java.lang.reflect.Field.getAnnotation(Native Method)
W/System.err: at java.lang.reflect.Field.getAnnotation(Field.java:209)
W/System.err: at cbm.a(Unknown Source)
W/System.err: at cbk.i(Unknown Source)
W/System.err: at com.sparken.echallan.activity.SplashActivity.onCreate(Unknown Source)
W/System.err: at android.app.Activity.performCreate(Activity.java:5264)
W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
W/System.err: java.lang.NullPointerException
W/System.err: at com.sparken.echallan.activity.SplashActivity.onCreate(Unknown Source)
W/System.err: at android.app.Activity.performCreate(Activity.java:5264)
W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
'私のプロジェクトにいくつかのルールセットを定義しました.' - コードベースを通らずにどのファイルが影響を受けるかを知るのは難しいです。私の最初の提案は、追加したすべてのカスタムルールを無効にし、githubページで指定された各ライブラリの標準プロガードルールのみを追加し、結果のビルドをチェックすることです。その後、さらにカスタマイズを進めます。 – blizzard