2013-06-06 2 views
0

В моем приложении я хочу включить proguard для этого, я добавил proguard.config = proguard.cfg в project.properties.proguard exception при создании apk в ecllipse в android

Мой proguard.cfg содержит

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-dontwarn javax.management.** 
-dontwarn java.lang.management.** 
-dontwarn org.apache.log4j.** 
-dontwarn org.apache.commons.logging.** 
-dontwarn org.slf4j.** 
-dontwarn org.json.* 
-verbose 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 

-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.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 
-keep class javax.** { *; } 
-keep class org.** { *; } 
-keep class twitter4j.** { *; } 

-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 class * extends android.app.Activity { public void *(android.view.View); } 

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

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

Моя консоль:

[2013-06-06 18:32:00 - Explosionfilters] Proguard returned with error code 1. See console 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.io.Buffer 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields$Field 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields$Field 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields$Field 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.Address 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.io.Buffer 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.Address 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields$Field 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.HttpRequestAdapter: can't find referenced class org.mortbay.jetty.HttpFields 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.jetty.JettyOAuthConsumer: can't find referenced class org.mortbay.jetty.client.HttpExchange 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: can't find referenced class org.apache.commons.codec.binary.Base64 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: can't find referenced class org.apache.commons.codec.binary.Base64 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: can't find referenced class org.apache.commons.codec.binary.Base64 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: can't find referenced class org.apache.commons.codec.binary.Base64 
[2013-06-06 18:32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: can't find referenced class org.apache.commons.codec.binary.Base64 
[2013-06-06 18:32:00 - Explosionfilters]  You should check if you need to specify additional program jars. 
[2013-06-06 18:32:00 - Explosionfilters] Warning: there were 31 unresolved references to classes or interfaces. 
[2013-06-06 18:32:00 - Explosionfilters]   You may need to specify additional library jars (using '-libraryjars'). 
[2013-06-06 18:32:00 - Explosionfilters] java.io.IOException: Please correct the above warnings first. 
[2013-06-06 18:32:00 - Explosionfilters] at proguard.Initializer.execute(Initializer.java:321) 
[2013-06-06 18:32:00 - Explosionfilters] at proguard.ProGuard.initialize(ProGuard.java:211) 
[2013-06-06 18:32:00 - Explosionfilters] at proguard.ProGuard.execute(ProGuard.java:86) 
[2013-06-06 18:32:00 - Explosionfilters] at proguard.ProGuard.main(ProGuard.java:492) 
    please help me how to solve this issue 
+0

http://stackoverflow.com/a/17988163/1318946 –

ответ

1

Вы не добавили параметры twitter4j в ProGuard. Вы должны добавить следующие настройки

-dontwarn javax.management.** 
-dontwarn java.lang.management.** 
-dontwarn org.apache.log4j.** 
-dontwarn org.apache.commons.logging.** 
-dontwarn org.slf4j.** 
-dontwarn org.json.* 

и это:

-keep class javax.** { *; } 
-keep class org.** { *; } 
-keep class twitter4j.** { *; } 

Это позволит решить ваш вопрос

+0

привет, спасибо за ваш ответ, я добавил ваш код, но все же я получаю ошибки – user1083266

+0

Что такое ошибка сейчас? –

+0

Предупреждение: oauth.signpost.jetty.HttpRequestAdapter: не может найти ссылочный класс org.mortbay.jetty.client.HttpExchange [2013-06-06 18:32:00 - Explosionfilters] Внимание: oauth.signpost.jetty.HttpRequestAdapter : не удается найти ссылочный класс org.mortbay.jetty.HttpFields Warning: oauth.signpost.signature.OAuthMessageSigner: не может найти ссылочный класс org.apache.commons.codec.binary.Base64 [2013-06-06 18: 32:00 - Explosionfilters] Warning: oauth.signpost.signature.OAuthMessageSigner: не может найти ссылочный класс org.apache.commons.codec.binary.Base64 – user1083266

0

я получаю ту же ошибку, но моя проблема была решена путем добавления следующих строк в моем 'proguard-android.txt'.

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

-dontwarn org.mortbay.** 
-dontwarn org.slf4j.** 
-dontwarn org.apache.log4j.** 
-dontwarn org.apache.commons.logging.** 
-dontwarn org.apache.commons.codec.binary.** 

-keep class twitter4j.** { *; } 

Для Google играть услуги, как Предупреждение: com.google.android.gms.common.GooglePlayServicesUtil: не может найти ссылки класс android.content.pm.PackageInstaller

Это решение! Надеюсь, это сработает и для вас!

Смежные вопросы