魅族5真机测试react-native应用的踩坑之旅

魅族5真机测试react-native应用的踩坑之旅

第一次在csdn上写博客,真的是因为魅族5真机测试的坑让我脑仁疼,现在终于弄好了,真的有必要写一下我的踩坑之旅。
博主手机是魅族5,android版本是5.1,flyme版本是6.0(后面会说这个版本是有多坑)
因为最近正在使用react-native来开发一个app,使用vscode作为编辑器,本人新手,所以有错误和不足的地方,还请见谅。
首先当然是手机连接电脑,这里有两种方式:
(1)通过usb线连接,简单粗暴
(2)通过wifi连接
博主用的是第一种,至于第二种,博主也试过,后面会说明这个问题。
连接电脑后,首先需要打开USB调试功能,然后在电脑cmd输入:adb devices回车
出现如下则表示连接成功
这里写图片描述
左边表示的是设备的ID,device表示设备是连接状态,如果是显示offline,则表示设备未连接上,就重复以上步骤,直到是device为止。

然后就是进入我的react-native开发的项目的根目录,然后输入:react-native run-android运行程序
毫无疑问,报错(-_-||)
(1)报错情况如下:

Error: duplicate files during packaging of APK 
**\android\app\build\outputs\apk\app-debug-unaligned.apk
        Path in archive: META-INF/NOTICE.txt
        Origin 1: 
**\android\app\libs\httpcore-4.1.4.jar
        Origin 2: 
**\android\app\libs\httpclient-4.1.3.jar
You can ignore those files in your build.gradle:
        android {
          packagingOptions {
            exclude 'META-INF/NOTICE.txt'
          }
        }

提示需要在build.gradle文件中添加’META-INF/NOTICE.txt,这个好说,从根目录->android->app,选择build.gradle文件进行编辑,

android {
    ...
    **packagingOptions {
        exclude 'META-INF/NOTICE.txt'
    }**
    ...
}

**中间就是需要添加的内容,添加完毕后,重新输入react-native run-android运行程序
嗯,是的,没有悬念,报错(-_-||)

Error: duplicate files during packaging of APK **\android\app\build\outputs\apk\app-debug-unaligned.apk
        Path in archive: META-INF/NOTICE.txt
        Origin 1: 
**\android\app\libs\httpcore-4.1.4.jar
        Origin 2: 
**\android\app\libs\httpclient-4.1.3.jar
You can ignore those files in your build.gradle:
        android {
          packagingOptions {
            exclude 'META-INF/NOTICE.txt'
          }
        }
:app:packageDebug FAILED

提示需要添加META-INF/NOTICE.txt,不行,这样下去没完没了,百度了一下,果然,需要添加的还有一个,总共需要添加的如下:

exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/MANIFEST.MF'

一次性将三个添加进去。
还有几类比较明显的错误,由于博主现在配置都对了,想改动找回之前的错误反而找不到了,所以我简单说一下这几类错误和解决办法:
(1)和debug.apk有关的错误
当你发现错误中涉及到debug.apk时,这就是魅族5坑爹的地方了,刚开始我的解决办法是进入你的项目的根目录->android->app->build->outputs->apk,你会发现这里面有两个文件
然后将app-debug.apk拷贝到手机上安装,完成后再输入react-native run-android运行程序就不会报debug.apk的错误了。
后来查资料发现这是魅族5手机有一个设置导致的,是因为flyme某个版本加入了usb安装验证,所以你需要打开手机管家->权限管理->usb安装管理里设置允许。
开启usb安装管理,这样就不需要手动安装debug.apk了。
(2)还有一个要注意的地方就是在android目录下有个build.gradle文件,打开里面有这样的代码:

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

com.android.tools.build:gradle:1.3.1这里的版本太高也会产生一些问题,博主改为1.2.3版本后就解决了问题。
博主解决了以上问题后运行react-native run-android后终于成功运行(|_|)。
(3)如果运行后出现:waiting for debugger错误
这是因为在开发者选项中“选择调试应用”选择某个程序并且打开了“等待调试器”,再打开某个程序时就会出现,即调试应用会在执行前等待附加调试处理方法:在开发者选项中“选择调试应用”选择无,并关闭“等待调试器”即可。
(4)摇晃手机无法打开调试菜单的问题
解决办法:打开手机管家->权限管理->应用权限管理,找到我的应用程序,点击进去后,打开“桌面悬浮窗”,再次重启应用,ok。

最后,关于使用wifi连接来进行真机测试的问题,因为我了解的不多,使用时报错,所以就没有选择这种方式。

希望能给大家一点帮助,共勉。

你可能感兴趣的:(react-native)