2014-11-06 68 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

相关问题