React-Native 关于oppo手机闪退的问题

刚刚学习React-Native,感谢前人挖井,今天有一点自己的收获,写下来回报社会;

1.oppo手机安装应用闪退,

异常日志:RuntimeException: Unable to instantiate application xxx.xxx.xxx.MainApplication: java.lang.ClassNotFoundException: Didn't find class "xxx.xxx.xxx.MainApplication" on path: DexPathList[[zip file "/data/app/com.yuanda.stock-jmjLVQsrUk6UqNH-lcohtg==/base.apk"],nativeLibraryDirectories=[/data/app/xxx.xxx.xxx-jmjLVQsrUk6UqNH-lcohtg==/lib/arm, /system/fake-libs, /data/app/xxx.xxx.xxx-jmjLVQsrUk6UqNH-lcohtg==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]

此问题的解决方案:

React-Native 关于oppo手机闪退的问题

 

2.oppo手机调用调试菜单闪退:

真机摇晃后调出的调试菜单如下(此截图为ios,android类似):React-Native 关于oppo手机闪退的问题

异常日志如下: 

android.view.WindowManager$BadTokenException:

Unable to add window [email protected] -- permission denied for window type 2003
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:940)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:385)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
        at android.app.Dialog.show(Dialog.java:388)
        at com.facebook.react.devsupport.DevSupportManagerImpl.showDevOptionsDialog(DevSupportManagerImpl.java:477)
        at com.facebook.react.devsupport.DevSupportManagerImpl$1.onShake(DevSupportManagerImpl.java:202)
        at com.facebook.react.common.ShakeDetector.maybeDispatchShake(ShakeDetector.java:146)
        at com.facebook.react.common.ShakeDetector.onSensorChanged(ShakeDetector.java:114)

解决方案:此问题为权限问题,因为8.0后权限api的变更导致,原来api则无效

方案1:

修改build.gradle中的 targetSdkVersion 23;

targetSdkVersion 23是一个神奇的版本,这个版本不需要动态申请权限

方案2:

借鉴"简书"javanHuang的<<Android8.0通知栏和悬浮窗新改动>>

https://www.jianshu.com/p/1649c2bd249c

 

最后祝大家工作顺利,生活愉快,第一次写博客,如有不对之处大家多多指正,共同进步;