2014-11-06 67 views
1

我在我的android項目中使用了google play服務庫。我沒有將它作爲一個jar包括,而是作爲我項目屬性中的一個庫項目。現在我得到一個錯誤如何在proguard中指定庫項目

無法執行DEX:不是在方法ID [0,爲0xFFFF]:65536

爲了解決這個計算器一個結果包括在ProGuard的庫中。

我已經通過指定jar文件的路徑在proguard中包含了庫jar文件。

如何在proguard中包含一個庫項目。

請幫

回答

0

你不能只是「包括圖書館項目」的想法。你必須添加特定的規則。對於谷歌播放服務規則shown here

-keep class * extends java.util.ListResourceBundle { 
    protected Object[][] getContents(); 
} 

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
    public static final *** NULL; 
} 

-keepnames @com.google.android.gms.common.annotation.KeepName class * 
-keepclassmembernames class * { 
    @com.google.android.gms.common.annotation.KeepName *; 
} 

-keepnames class * implements android.os.Parcelable { 
    public static final ** CREATOR; 
} 

這些走在proguard-project.txt文件在您的項目根。

+0

我的問題是我的應用程序超過了65536個方法,單獨的goole play服務庫有30k個方法左右。我使用谷歌播放服務庫的原因是在我的應用程序中實現谷歌地圖。我想讓proguard從這個庫中去除所有未使用的方法。上面提到的代碼是爲了防止proguard剝離權嗎? – user3008777 2014-11-06 08:12:51

相關問題