2014-11-22 230 views
1

我想我的Android應用程序導出並啓用ProGuard的,當我得到這個錯誤: - 從ProGuard的-project.txtProguard的錯誤代碼1:Proguard.ParseException

Proguard returned with error code 1. See console 
proguard.ParseException: Expecting java type before ' ' in line 79 of file 'C:\Documents and Settings\Acer.ACER-2487AA0235\My Documents\Eclipse\Myproject\proguard-project.txt', 
included from argument number 4 
at proguard.ConfigurationParser.checkJavaIdentifier(ConfigurationParser.java:1187) 
at proguard.ConfigurationParser.parseMemberSpecificationArguments(ConfigurationParser.java:842) 
at proguard.ConfigurationParser.parseClassSpecificationArguments(ConfigurationParser.java:697) 
at proguard.ConfigurationParser.parseKeepClassSpecificationArguments(ConfigurationParser.java:490) 
at proguard.ConfigurationParser.parse(ConfigurationParser.java:139) 
at proguard.ProGuard.main(ProGuard.java:484) 

線77-80: -

-keepclassmembers class * 
{ 
@android.webkit.JavascriptInterface <methods>; 
} 

完成proguard的項目: -

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 
-keepattributes *Annotation* 

-injars  bin/classes 
-injars  libs 
-outjars  bin/classes-processed.jar 

-libraryjars /libs/com-rfhtaej-vskwgkw207826.jar 


-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 * extends android.preference.Preference 
-keep class com.rfhtaej.vskwgkw207826.** {*;} 
-dontwarn com.rfhtaej.vskwgkw207826.** 



-keepclasseswithmembernames class * 
{ 
    native <methods>; 
} 

-keepclasseswithmembers class * 
    { 
    public <init>(android.content.Context, android.util.AttributeSet); 
    } 

-keepclasseswithmembers class * 
    { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
    } 

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



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

    -keepclasseswithmembers class **.R$** 
    { 
    public static <fields>; 
    } 

    -keepclassmembers class * 
    { 
    @android.webkit.JavascriptInterface<methods>; 
    } 
    -keep class * extends android.view.View 
    { 

     public <init>(android.content.Context); 
     public <init>(android.content.Context, android.util.AttributeSet); 
     public <init>(android.content.Context, android.util.AttributeSet, int); 
     void set*(***); 
     *** get*(); 
    } 

    -keepclassmembers class * 
    { 
     static final %    *; 
     static final java.lang.String *; 
    } 

-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; 
} 

-dontwarn com.google.android.gms.** 


-keepattributes SetJavaScriptEnabled 
-keepattributes JavascriptInterface 
-keepattributes InlinedApi 

任何關於如何解決這個問題的想法,因爲我的應用程序全部完成,並且由於最後一個階段的錯誤,我無法發佈它。謝謝。

回答

1

我遇到了同樣的錯誤,最後整理出來通過保持低於線ProGuard的-project.txt文件

-libraryjars /libs/Your_Jar_File.jar

只排除jar文件,其任何你感覺它是在引起你的期待。

由於一個外部jar文件,我面臨這個問題。 proguard在混淆它。在我的情況下,airpush jar文件正在產生問題。只是排除它。

+0

排除其jar文件後,airpush是否正常工作? – Mohit 2014-11-26 08:20:37

+0

是的,這裏我們只是從proguard中排除它。它仍然在你的項目文件夾中。試試吧。祝你好運。如果您認爲這很有用,請將其標記爲已接受。 – sri2377076 2014-11-26 08:43:51

+0

仍然收到相同的錯誤。也許它的代碼是相關的,因爲它需要一個java類型。 – Mohit 2014-11-26 13:40:31

相關問題