我使用了here提供的解决方法,只要用户在屏幕上的任何位置(右侧),应用就可以打开导航抽屉。代码工作得非常好。
但是,我刚刚签署了我的apk上传到Play商店,并且在测试时,幻灯片打开无法正常工作。我做了一点窥探,找出问题所在,并发现它为NoSuchFieldException
投了Field leftDraggerField = drawerLayout.getClass().getDeclaredField("mLeftDragger");
我不知道它为什么不起作用。它适用于调试apk,但不适用于签名的apk。有谁可以帮我理解这个问题?
答案 0 :(得分:6)
哦,当我第一次遇到这个问题时,这是一场噩梦。我花了几个小时才弄清楚出了什么问题。问题是我启用了ProGuard并且成员字段mLeftDragger
被混淆了。我不得不告诉ProGuard不要混淆DrawerLayout
的任何类成员,这些成员属于包android.support.v4.widget
我在proguard-project.txt
-keepclasseswithmembernames class android.support.v4.widget.** { *; }
并且一切都像以前一样像魅力一样。