【发布时间】:2013-05-09 09:33:02
【问题描述】:
在我的应用程序上成功使用 ProGuard 后,它在我的移动设备上启动时崩溃。
我使用proguard的标准配置:${sdk.dir}/tools/proguard/proguard-android.txt
而 logcat 是这样说的:E/AndroidRuntime(13441): at packagename.q.doInBackground(Unknown Source)
然后一些应用程序崩溃错误等。
为什么在 doInBackground 中找不到我的 Source?它是一个简单的 AsyncTask。 谁能帮帮我?
编辑:整个日志:
I/ActivityManager( 1604): Start proc myPackageName for activity myPackageName/.MainActivity: pid=13961 uid=10147 gids={3003}
I/ActivityManager( 1604): Displayed myPackageName/.MainActivity: +744ms (total +1m41s749ms)
E/AndroidRuntime(13961): at myPackageName.q.doInBackground(Unknown Source)
E/EmbeddedLogger( 1604): App crashed! Process: myPackageName
E/EmbeddedLogger( 1604): App crashed! Package: myPackageName v4 (1.2.1)
E/EmbeddedLogger( 1604): Application Label: XxX
W/ActivityManager( 1604): Force finishing activity myPackageName/.MainActivity
E/WindowManager(13961): Activity myPackageName.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40dcbed8 that was originally added here
E/WindowManager(13961): android.view.WindowLeaked: Activity myPackageName.MainActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40dcbed8 that was originally added here
E/WindowManager(13961): at myPackageName.MainActivity.b(Unknown Source)
E/WindowManager(13961): at myPackageName.l.a(Unknown Source)
I/ActivityManager( 1604): Process myPackageName (pid 13961) has died.
【问题讨论】:
-
这是因为 Proguard 的配置错误。 pagename 是非组件类吗?如果是,请使用 keep 进行此类。放完整的日志消息
-
哦,对不起,这应该是包名,它显示了我的包名^^ Mhm如何提供从手机到这里的整个日志:o
-
:) q 是一个 Activity 类?如果是,请修改您的设置
-
嗯,我的 Activity 类被命名为:MainActivity 和 Login :o 但是 doInBackground 在另一个类中,这改变了 MainActivity 上的一些东西,这是错误吗?我认为q是因为PG的缩小等,我应该修改什么?我对配置 ProGuard 了解不多:/
-
这就是我问的原因。如果那是 Proguard 未更改的活动名称。使用
-keep class pkg.classname { *; }。
标签: java android obfuscation proguard