0

私は自分のアプリを作成し、ここでの提案に従ってこれを行いました:

proguard-project.txt で:

# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

-optimizationpasses 10
-dontwarn android.support.**
-verbose


-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class ClassOne extends Activity
-keep public class ClassTwo extends ListActivity
-keep public class ClassThree extends ListActivity
-keep public class ClassFour extends ListActivity
-keep public class ClassFive extends ListActivity
-keep public class ClassSix extends ListActivity
-keep public class ClassSeven extends Activity

それらは私のクラスですmanifest

project.properties で、次の行のコメントを外します。

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

アプリをエクスポートし、使用済みの dex2jar と jd-gui を開いて、追加が成功するかどうかを確認しました。

問題は、コードがほぼ私がコーディングしたとおりであり、非常に理解しやすいことです。

私は何か間違ったことをしていますか?難読化を改善できますか?

4

2 に答える 2

1

'keeps'を文字通りコピーする必要があります

-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 com.android.vending.licensing.ILicensingService
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment

自分の実際のアクティビティ名に置き換えるのではなく

于 2012-08-30T15:30:08.420 に答える
1

Ok。

次の行を削除しました。

-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 com.android.vending.licensing.ILicensingService
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment

そして今、それは私が期待したとおりです

インターネット上のすべての例にはこれらの行があるため、それらは重要であると私は強く思いました.

アプリをテストしたところ、期待どおりに動作しています

于 2012-08-31T10:01:57.857 に答える