2013-09-24 40 views
4

我想用我的應用程序配置proguard。但在做的,所以我接受了以下問題:用我的APK實現Proguard安全性

[2013-09-24 12:27:46 - DemoProguard] Proguard returned with error code 1. See console 
[2013-09-24 12:27:46 - DemoProguard] Warning: com.google.android.gms.internal.bn$b: can't find referenced method 'android.view.Display getDisplay()' in class android.view.View 
[2013-09-24 12:27:46 - DemoProguard] Warning: com.google.android.gms.internal.bn$b: can't find referenced method 'void removeOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener)' in class android.view.ViewTreeObserver 
[2013-09-24 12:27:46 - DemoProguard]  You should check if you need to specify additional program jars. 
[2013-09-24 12:27:46 - DemoProguard] Warning: there were 2 unresolved references to program class members. 
[2013-09-24 12:27:46 - DemoProguard]   Your input classes appear to be inconsistent. 
[2013-09-24 12:27:46 - DemoProguard]   You may need to recompile them and try again. 
[2013-09-24 12:27:46 - DemoProguard]   Alternatively, you may have to specify the option 
[2013-09-24 12:27:46 - DemoProguard]   '-dontskipnonpubliclibraryclassmembers'. 
[2013-09-24 12:27:46 - DemoProguard] java.io.IOException: Please correct the above warnings first. 
[2013-09-24 12:27:46 - DemoProguard] at proguard.Initializer.execute(Initializer.java:321) 
[2013-09-24 12:27:46 - DemoProguard] at proguard.ProGuard.initialize(ProGuard.java:211) 
[2013-09-24 12:27:46 - DemoProguard] at proguard.ProGuard.execute(ProGuard.java:86) 
[2013-09-24 12:27:46 - DemoProguard] at proguard.ProGuard.main(ProGuard.java:492) 
[2013-09-24 12:40:50 - DemoProguard] Proguard returned with error code 1. See console 
[2013-09-24 12:40:50 - DemoProguard] Warning: com.google.android.gms.internal.bn$b: can't find referenced method 'android.view.Display getDisplay()' in class android.view.View 
[2013-09-24 12:40:50 - DemoProguard] Warning: com.google.android.gms.internal.bn$b: can't find referenced method 'void removeOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener)' in class android.view.ViewTreeObserver 
[2013-09-24 12:40:50 - DemoProguard]  You should check if you need to specify additional program jars. 
[2013-09-24 12:40:50 - DemoProguard] Warning: there were 2 unresolved references to program class members. 
[2013-09-24 12:40:50 - DemoProguard]   Your input classes appear to be inconsistent. 
[2013-09-24 12:40:50 - DemoProguard]   You may need to recompile them and try again. 
[2013-09-24 12:40:50 - DemoProguard]   Alternatively, you may have to specify the option 
[2013-09-24 12:40:50 - DemoProguard]   '-dontskipnonpubliclibraryclassmembers'. 
[2013-09-24 12:40:50 - DemoProguard] java.io.IOException: Please correct the above warnings first. 
[2013-09-24 12:40:50 - DemoProguard] at proguard.Initializer.execute(Initializer.java:321) 
[2013-09-24 12:40:50 - DemoProguard] at proguard.ProGuard.initialize(ProGuard.java:211) 
[2013-09-24 12:40:50 - DemoProguard] at proguard.ProGuard.execute(ProGuard.java:86) 
[2013-09-24 12:40:50 - DemoProguard] at proguard.ProGuard.main(ProGuard.java:492) 

這裏是我的proguard的文本文件

# To enable ProGuard in your project, edit project.properties 
# 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: 
-dontskipnonpubliclibraryclassmembers 

# 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 *; 
#} 
+0

告訴我們您的proguard.cfg – juned

+0

@juned你能幫助我嗎? –

回答

20

嘗試下面第一個添加這些行我們proguard.cfg文件,您的項目:

-ignorewarnings 

,如果你在你的項目中的任何註解的話,請添加下一行如下

-keepattributes *Annotation* 

,並確保您的gradle這個文件minifyEnabled爲

+0

它像一個魅力。但它並沒有完全混淆代碼。我已經反編譯了我的apk,但已經看到只有一些代碼被混淆了,並且很容易解碼。 –

+0

刪除所有行proguard.cfg添加只有一行--ignorewarnings並再次嘗試哥們! –