3

我使用了这里提供的这个解决方法,它使应用程序能够在用户在屏幕上的任何位置(向右)时打开导航抽屉。代码工作得很好。

但是,我刚刚签署了要上传到 Play 商店的 apk,并且在测试时,打开的幻灯片无法正常工作。我做了一点窥探以找出问题所在,并发现它正在抛出一个NoSuchFieldExceptionforField leftDraggerField = drawerLayout.getClass().getDeclaredField("mLeftDragger");

我不知道为什么它不起作用。它适用于调试 apk,但不适用于已签名的 apk。谁能帮我理解这个问题?

4

1 回答 1

6

哦,好吧,当我第一次遇到这个问题时,这是一场噩梦。我花了几个小时才弄清楚出了什么问题。问题是我启用了 ProGuard 并且成员字段mLeftDragger被混淆了。我不得不告诉 ProGuard 不要混淆DrawerLayout属于包的任何类成员android.support.v4.widget

我添加了以下内容proguard-project.txt

-keepclasseswithmembernames class android.support.v4.widget.** { *; }

一切都像以前一样魅力四射。

于 2014-02-03T18:50:39.253 回答