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

问题描述 投票:0回答:6

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

  • 如果使用adb命令,应用程序就会安装。

  • 上述命令适用于 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)
android gradle android-gradle-plugin automated-tests android-espresso
6个回答
35
投票

这恰好是大多数中国制造的手机的一个非常常见的问题。问题出在你的 gradle-plugin 依赖关系中,有两种方法可以解决它。


选项 1:降级你的 gradle 版本。

第1步:转到第8行的

sampleProject/android/build.gradle
并将类路径修改为
com.android.tools.build:gradle:1.2.3
或1.2.1。

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


选项 2:手动安装

第 1 步:在

sampleProject/android/app/build/outputs/apk
找到 app-debug.apk。

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

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

启动您的react-native服务器和中提琴都已启动并运行!!!

编辑!!!!!!!!!

执行上面列出的任何一个选项都变得如此疲惫和令人沮丧,我找到了另一个解决方案。


选项 3:添加设备 ID

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

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


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


0
投票

使用

adb devices
检查您的手机是否正确可见

如果是,请尝试使用

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

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

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

希望对你有帮助


0
投票

问题是因为您可能有

connected both Emulator & Real device
。删除其中一个就可以了。

由于我在删除真实设备后遇到了同样的问题,它修复了错误。


0
投票

我从我的设备中卸载了该 apk。完成此操作后,我的问题得到了解决。


0
投票

我也有同样的问题。 我的解决方案:手动删除

app-local-debug.apk
app-debug.apk
文件,然后再次运行


0
投票

我发现我在

archivesBaseName
下设置了
defaultConfig
,这样我就可以跟踪生产包版本,其中包括一个空格字符。一旦我删除了空格字符,它就很高兴。

即在模块级别

build.gradle
更改

android {
    ... 
    defaultConfig {
        ... 
        archivesBaseName = "myappname v${myVersionCode}"
        ...

android {
    ... 
    defaultConfig {
        ... 
        archivesBaseName = "myappname-v${myVersionCode}"
        ...
© www.soinside.com 2019 - 2024. All rights reserved.