随处滑动以打开导航抽屉

时间:2014-02-03 17:36:21

标签: android navigation-drawer nosuchfieldexception

我使用了here提供的解决方法,只要用户在屏幕上的任何位置(右侧),应用就可以打开导航抽屉。代码工作得非常好。

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

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

1 个答案:

答案 0 :(得分:6)

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

我在proguard-project.txt

中添加了以下内容
-keepclasseswithmembernames class android.support.v4.widget.** { *; }

并且一切都像以前一样像魅力一样。