使用ProGuard导出Android应用程序会出现ParseException错误

时间:2013-07-10 23:45:30

标签: java android proguard

使用Proguard导出Android应用程序时出现以下错误(通过Eclipse中的ADT)。

“proguard.ParseException:期待开放'('或分隔符';'名称'之前'”

我看到升级Proguard和sdk解决了其他ProGuard解析错误问题;然而,在所有升级之后没有运气。有人见过这个/之前解决了吗?提前感谢您的帮助!

环境

  

ADT 22.0.1

     

Eclipse SDK 4.2.2

     

Android SDK 4.2,SDK工具rev 22

     

Proguard v4.9

控制台日志

  

Proguard返回错误代码1.请参阅控制台   proguard.ParseException:期望打开'('或分隔符';'之前   文件'〜/ project / bin / proguard.txt'第155行的'name',包括在   参数编号4 at   proguard.ConfigurationParser.parseMemberSpecificationArguments(ConfigurationParser.java:966)   在   proguard.ConfigurationParser.parseClassSpecificationArguments(ConfigurationParser.java:729)   在   proguard.ConfigurationParser.parseKeepClassSpecificationArguments(ConfigurationParser.java:516)   在proguard.ConfigurationParser.parse(ConfigurationParser.java:165)at   proguard.ProGuard.main(ProGuard.java:476)

来自项目的第55行

  

-keepclassmembers class * { * 方法名称(...); }

proguard.cfg

  

- 优化通过5   -dontusemixedcaseclassnames   -dontskipnonpubliclibraryclasses   -dontpreverify   -verbose   -optimizations!code / simplifiedification / arithmetic,!field / ,! class / merge /

     

-assumenosideeffects class android.util.Log {       public static boolean isLoggable(java.lang.String,int);       public static int v(...);       public static int d(...); }

     

-printmapping out.map

     

-renamesourcefile属性SourceFile   -keepattributes SourceFile,LineNumberTable

     

-keep public class * extends android.app.Activity   -keep public class *扩展android.app.Application   -keep public class *扩展android.app.Service   -keep public class *扩展了android.content.BroadcastReceiver   -keep public class *扩展了android.content.ContentProvider   -keep public class * extends android.app.backup.BackupAgentHelper   -keep public class * extends android.preference.Preference   -keep public class com.android.vending.licensing.ILicensingService

     

-keepclasseswithmembernames class * {       原生的}

     

-keepclasseswithmembernames class * {       public(android.content.Context,android.util.AttributeSet); }

     

-keepclasseswithmembernames class * {       public(android.content.Context,android.util.AttributeSet,int); }

     

-keepclassmembers枚举* {       public static * [] values();       public static * valueOf(java.lang.String); }

     

-keep class *实现android.os.Parcelable {public static final android.os.Parcelable $ Creator *; }

     

-keepclassmembers class * extends android.content.Context {public void *(android.view.View); public void *(android.view.MenuItem); }

     

-keepclassmembers class * .R $ {       公共静态; }

1 个答案:

答案 0 :(得分:0)

我认为问题可能是:

  

-keepclasseswithmembernames class * {native; }

你可以尝试:

-keepclasseswithmembernames class * { 
    native <methods>; 
}