AndroidChangeSkin
AndroidChangeSkin copied to clipboard
Demo Crash in Nexus6p NullPointException
在nexus6p上点击 插件换肤1 ,直接发生crash 。日志如下
java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.content.pm.PackageInfo.packageName' on a null object reference
at com.zhy.changeskin.SkinManager.validPluginParams(SkinManager.java:112)
at com.zhy.changeskin.SkinManager.checkPluginParamsThrow(SkinManager.java:119)
at com.zhy.changeskin.SkinManager.changeSkin(SkinManager.java:208)
at com.zhy.changeskin.SkinManager.changeSkin(SkinManager.java:186)
at com.zhy.skinchangenow.MenuLeftFragment$2.onClick(MenuLeftFragment.java:53)
at android.view.View.performClick(View.java:5204)
at android.view.View$PerformClick.run(View.java:21153)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
debug 下,是因为6.0 系统上,获取PackageInfo的方法不兼容照成的。SkinManager 112行。
4.4 的设备上是ok 的
恩,对于6.0,主要因为权限机制的变化,我暂时没有做处理,由于需要读取sdcard的权限。
通过settings->app->AndroidChangeSkin然后把Storage的权限开启,再进行测试就好了。
后面有时间会对6.0的权限做一下处理,多谢反馈~