android程序崩溃后,在appuard混淆之后,Android应用程序崩溃了

博主在Android应用上使用proguard工具混淆后,应用登录时崩溃。原以为是proguard删除不必要类或方法所致,运行时添加 -dontobfuscate 选项后应用可正常运行但未混淆,博主不知如何解决,还给出了配置文件和项目浏览器窗格信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在我的应用程序上运行了proguard工具来进行混淆.我知道,当混淆发生时,proguard会缩小并优化应用程序.因此,在混淆应用程序正确打开后,然后当我尝试登录时崩溃.我得到的最好的是这个日志,因为我连接了设备.

10-03 11:12:47.384: E/AndroidRuntime(15058): FATAL EXCEPTION: AsyncTask #1

10-03 11:12:47.384: E/AndroidRuntime(15058): java.lang.RuntimeException: An error occured while executing doInBackground()

10-03 11:12:47.384: E/AndroidRuntime(15058): at android.os.AsyncTask$3.done(AsyncTask.java:299)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.FutureTask.run(FutureTask.java:239)

10-03 11:12:47.384: E/AndroidRuntime(15058): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.lang.Thread.run(Thread.java:856)

10-03 11:12:47.384: E/AndroidRuntime(15058): Caused by: java.lang.ExceptionInInitializerError

10-03 11:12:47.384: E/AndroidRuntime(15058): at com.winwin.a.d.c.doInBackground(Unknown Source)

10-03 11:12:47.384: E/AndroidRuntime(15058): at com.winwin.a.d.c.doInBackground(Unknown Source)

10-03 11:12:47.384: E/AndroidRuntime(15058): at android.os.AsyncTask$2.call(AsyncTask.java:287)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.util.concurrent.FutureTask.run(FutureTask.java:234)

10-03 11:12:47.384: E/AndroidRuntime(15058): ... 4 more

10-03 11:12:47.384: E/AndroidRuntime(15058): Caused by: java.lang.ExceptionInInitializerError

10-03 11:12:47.384: E/AndroidRuntime(15058): at com.winwin.a.c.d.(Unknown Source)

10-03 11:12:47.384: E/AndroidRuntime(15058): ... 8 more

10-03 11:12:47.384: E/AndroidRuntime(15058): Caused by: java.lang.ExceptionInInitializerError

10-03 11:12:47.384: E/AndroidRuntime(15058): at com.b.a.c.ad.(Unknown Source)

10-03 11:12:47.384: E/AndroidRuntime(15058): ... 9 more

10-03 11:12:47.384: E/AndroidRuntime(15058): Caused by: java.lang.NoSuchFieldError: ANY

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.lang.Class.getDeclaredAnnotation(Native Method)

10-03 11:12:47.384: E/AndroidRuntime(15058): at java.lang.Class.getAnnotation(Class.java:260)

10-03 11:12:47.384: E/AndroidRuntime(15058): at com.b.a.c.f.ag.(Unknown Source)

我原以为这是因为proguard删除了一些它认为不必要的类或方法,因此导致了崩溃.我做的是这次我再次运行proguard包括

-dontobfuscate

所以我希望这个工具能够缩小和优化,但不要混淆,这样我就可以得到一个关于缺少什么的正确读数.但是,当我使用该工具生成apk时,这次它完全运行.问题是它没有被混淆.

所以我现在不知道该怎么做.

有没有人有任何想法?

*编辑*

这是我的配置文件

To enable ProGuard in your project, edit project.properties

to define the proguard.config property as described in that file.

Add project specific ProGuard rules here.

By default, the flags in this file are appended to flags specified

in ${sdk.dir}/tools/proguard/proguard-android.txt

You can edit the include path and order by changing the ProGuard

include property in project.properties.

For more details, see

http://developer.android.com/guide/developing/tools/proguard.html

Add any project specific keep options here:

-libraryjars libs/crashlytics.jar

-keep class com.facebook.** {

*;

}

-keepattributes Signature

-optimizationpasses 5

-dontusemixedcaseclassnames

-dontskipnonpubliclibraryclasses

-dontpreverify

-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 all classes that might be used in XML layouts

-keep public class * extends android.view.View

-keep public class * extends android.app.Fragment

-keep public class * extends android.support.v4.Fragment

-keepattributes *Annotation*, EnclosingMethod

-keep class com.winwin.** { *; }

-keepnames class org.codehaus.jackson.** { *; }

-dontoptimize

-dontshrink

keep all public and protected methods that could be used by java reflection

-keepclassmembernames class * {

public protected ;

}

-keepclasseswithmembernames class * {

native ;

}

-keepclasseswithmembernames class * {

public (android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembernames class * {

public (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 *;

}

-dontwarn **CompatHoneycomb

-dontwarn org.htmlcleaner.*

-dontwarn com.fasterxml.jackson.databind.ext.**

If your project uses WebView with JS, uncomment the following

and specify the fully qualified class name to the JavaScript interface

class:

-keepclassmembers class fqcn.of.javascript.interface.for.webview {

public *;

}

==========================

这是我的项目浏览器窗格

android-support-v7-appcompat /

ConverserSdk /

脸书/

google-play-services_lib /

图书馆 /

主要/

主页/

SlidingMenu

所以我的主要依赖于其他每个包.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值