Gradle:上传app-local-debug.apk时出错:未知失败([CDS] close [0])

Ros*_*tri 5 android automated-tests gradle android-gradle-plugin android-espresso

我正在尝试使用gradlew cAT命令与我的Android手机执行连接的Android测试.但我得到以下错误日志,它无法安装该应用程序.

  • 如果使用adb命令,则会安装App.

  • 以上命令适用于OnePlusOne手机,但不适用于联想和华硕

错误日志如下:

Unable to install /home/admin/MyApp/app/build/outputs/apk/app-local-debug.apk
com.android.ddmlib.InstallException: Failed to install all 
        at com.android.ddmlib.SplitApkInstaller.install(SplitApkInstaller.java:91)
        at com.android.ddmlib.Device.installPackages(Device.java:901)
        at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:119)
        at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:121)
        at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

Ern*_*est 35

这恰好是大多数中国制造手机的常见问题.问题在于您的gradle-plugin依赖项,有两种方法可以解决它.


选项1:降级您的gradle版本.

步骤1:转到sampleProject/android/build.gradle第8行并将classpath修改为com.android.tools.build:gradle:1.2.3或1.2.1.

第2步:转到sampleProject/android/gradle/wrapper/gradle-wrapper.properties第5行并将distributeUrl修改为https://services.gradle.org/distributions/gradle-2.2-all.zip


选项2:手动安装

第1步:找到app-debug.apk sampleProject/android/app/build/outputs/apk.

第2步:复制并粘贴到手机中的任何文件夹,然后单击以安装它.

步骤3:摇动手机以显示设置,单击开发设置,然后 单击设备的调试服务器主机和端口,并使用您的IP地址(192.168.xx.xx:8081)进行配置.

启动您的react-native服务器和中提琴你正在运行!

编辑!!!!!!!!

做上面列出的任何一个选项变得非常累人和令人沮丧,我找到了另一个解决方案


选项3:添加设备ID

第1步:确保您的设备已连接然后运行adb devices.从输出中,获取设备ID H80xxxxxx.

第2步:运行react-native run-android --deviceId H80xxxxxx


注意:我个人现在每次出现错误都会使用选项3 !!

  • 第一个选项对我有用,但你也需要运行这个命令:`cd android && gradlew clean && cd .. && react-native run-android` (2认同)

pio*_*543 0

检查adb devices是否可以正确识别您的手机

如果是,请尝试使用adb在您的手机上安装应用程序,如果它已安装并且工作正常,则比使用(在 Linux 上)运行测试更好./gradlew connectedAndroidTest。

根据问题: https: //github.com/facebook/react-native/issues/2720

这可能是 Gradle 插件版本的问题,所以如果您仍然遇到问题,请降级您的 gradle-plugin 依赖项。

希望它会有所帮助