2013-05-04 34 views
0

我的应用程序已测试并正常工作。但是当我尝试测试释放apk时,它崩溃了。我包括我的proguard文件和测试释放apk时获得的错误日志。基本上它通过意图拍摄照片后崩溃,然后尝试通过互联网将照片发送给收件人。再次,我的应用程序工作正常:直到proguard进入混合。尝试使用相机发送图片时Proguard崩溃应用程序

甲注:

发送所述图像的代码是由一Thread开始作为在new Thread(runnable).start()一个Runnable;非常基本的东西。再次,代码在proguard之外工作。

project.properties文件是使用默认的Android文件和​​我的。

机器人的ProGuard:

# This is a configuration file for ProGuard. 
# http://proguard.sourceforge.net/index.html#manual/usage.html 

-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-verbose 

# Optimization is turned off by default. Dex does not like code run 
# through the ProGuard optimize and preverify steps (and performs some 
# of these optimizations on its own). 
-dontoptimize 
-dontpreverify 
# Note that if you want to enable optimization, you cannot just 
# include optimization flags in your own project configuration file; 
# instead you will need to point to the 
# "proguard-android-optimize.txt" file instead of this one from your 
# project.properties file. 

-keepattributes *Annotation* 
-keep public class com.google.vending.licensing.ILicensingService 
-keep public class com.android.vending.licensing.ILicensingService 

# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native 
-keepclasseswithmembernames class * { 
    native <methods>; 
} 

# keep setters in Views so that animations can still work. 
# see http://proguard.sourceforge.net/manual/examples.html#beans 
-keepclassmembers public class * extends android.view.View { 
    void set*(***); 
    *** get*(); 
} 

# We want to keep methods in Activity that could be used in the XML attribute onClick 
-keepclassmembers class * extends android.app.Activity { 
    public void *(android.view.View); 
} 

# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations 
-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 

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

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

# The support library contains references to newer platform versions. 
# Don't warn about those in case this app is linking against an older 
# platform version. We know about them, and they are safe. 
-dontwarn android.support.** 

项目的ProGuard:

# My addition 

-keepclassmembers class com.mycompany.mygame.** { 
    public static <fields>; 
} 

# -keep public class com.mycompany.mygame.** { *; } 
-dontwarn com.mycompany.mygame.** 

# -keep public class android.support.** { *; } 
-dontwarn android.support.** 

# -keep public class com.google.android.gms.** { *; } 
-dontwarn com.google.android.gms.** 

# -keep public class com.google.common.** { *; } 
-dontwarn com.google.common.** 

# -keep public class org.apache.commons.** { *; } 
-dontwarn org.apache.commons.** 

# -keep public class org.apache.http.impl.** { *; } 
-dontwarn org.apache.http.impl.** 

# -keep public class android.net.http.AndroidHttpClient { *; } 
-dontwarn android.net.http.AndroidHttpClient 

错误日志:

05-03 17:40:45.704: E/CameraApp(5068): [SoundController.java:468:onDestroy()] onDestroy-end, sound_pool release 2/2 
05-03 17:40:52.829: E/AndroidRuntime(5327): FATAL EXCEPTION: Thread-514 
05-03 17:40:52.829: E/AndroidRuntime(5327): xb: The chosen LogFactory implementation does not extend LogFactory. Please check your configuration. (Caused by java.lang.ClassCastException: The application has specified that a custom LogFactory implementation should be used but Class 'org.apache.commons.logging.impl.LogFactoryImpl' cannot be converted to 'xc'. Please check the custom implementation. Help can be found @http://commons.apache.org/logging/troubleshooting.html.) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at xc.a(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at xe.run(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at java.security.AccessController.doPrivileged(AccessController.java:45) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at xc.a(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at xc.a(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at xc.b(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at afj.<init>(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at afr.<init>(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at gu.a(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at ha.a(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at ha.run(Unknown Source) 
05-03 17:40:52.829: E/AndroidRuntime(5327):  at java.lang.Thread.run(Thread.java:856) 
05-03 17:40:52.829: E/AndroidRuntime(5327): Caused by: java.lang.ClassCastException: The application has specified that a custom LogFactory implementation should be used but Class 'org.apache.commons.logging.impl.LogFactoryImpl' cannot be converted to 'xc'. Please check the custom implementation. Help can be found @http://commons.apache.org/logging/troubleshooting.html. 
05-03 17:40:52.829: E/AndroidRuntime(5327):  ... 12 more 
05-03 17:41:13.829: E/Trace(5606): error opening trace file: No such file or directory (2) 
+0

干得好,包括原木,但你可以修剪它们回到关键部分。在这种情况下,请查看日志中的倒数第三行以获取非常详细的错误消息。 – 2013-05-04 01:11:21

+0

@EdwardFalk我修剪它。我看到了错误。我只是不知道该怎么告诉proguard来修复它。现在我已经在这个相同的bug上转了两天了。我欢迎帮助。 – 2013-05-04 01:19:21

+0

失败的代码在我的编辑解释的'Runnable'内。 – 2013-05-04 01:23:09

回答

2

的警示信号是这一行:

05-03 17:40:52.829: E/AndroidRuntime(5327): Caused by: java.lang.ClassCastException: The application has specified that a custom LogFactory implementation should be used but Class 'org.apache.commons.logging.impl.LogFactoryImpl' cannot be converted to 'xc'. Please check the custom implementation. Help can be found @http://commons.apache.org/logging/troubleshooting.html. 

看起来有些Apache的日志记录的类已通过Proguard的重命名,并从Proguard的配置文件,你必须

# -keep public class org.apache.commons.** { *; } 

标记为注释(以“#”前缀)的,所以我会删除“#”上面这行代码告诉Proguard不要重命名包org.apache.commons中的类,然后重试。

+0

我会再试一次。但事实是,我开始与他们所有的人没有注释。然后我评论他们,因为代码仍然失败。 – 2013-05-04 04:02:28

+0

你是否从org.apache.commons扩展任何类?如果是这样,他们也需要被添加到Proguard的配置文件中。 – Kai 2013-05-04 04:34:15

+0

它停止崩溃。非常感谢您的帮助。 +1。 – 2013-05-04 05:15:08

相关问题