com.android.ddmlib.InstallException:无法建立会话react-native

时间:2015-09-15 04:32:55

标签: android react-native

我正在尝试在我的nexus5模拟器中运行react-native android app

adb devices
List of devices attached
emulator-5554   device

启动了打包器react-native start

正在运行应用 - react-native run-android

安装APK' app-debug.apk' on' reactnative(AVD) - 6.0' 无法安装示例/ android / app / build / outputs / apk / app-debug.apk

com.android.ddmlib.InstallException: Failed to establish session
        at com.android.ddmlib.Device.installPackages(Device.java:894)
        at com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:113)
        at com.android.builder.testing.ConnectedDevice$installPackages$0.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at com.android.build.gradle.internal.tasks.InstallVariantTask.install(InstallVariantTask.groovy:119)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:483)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)

16 个答案:

答案 0 :(得分:240)

此问题恰好发生在Xiomi设备中。在开发人员选项中,您不必禁用MIUI优化(禁用此功能不会同步您的帐户),而是启用USB调试'以及通过USB安装'和USB调试(安全设置)'。 这将解决问题:)

答案 1 :(得分:14)

尝试:react-native run-android --deviceId YOUR_ID

答案 2 :(得分:8)

众所周知,adb是片状的。尝试:

  • 使用$ adb kill-server
  • 重新启动adb
  • 重新启动模拟器
  • 使用Genymotion代替Google模拟器。

答案 3 :(得分:7)

对于您的AVD仿真器设置,请尝试确保"使用主机GPU"检查设置,然后重新启动模拟器并重试。

答案 4 :(得分:4)

在我的情况下,我必须在执行此命令 / sdklocation / platform-tools /

 adb kill-server

然后再次运行并在手机上查看安装请求 希望这能有所帮助

答案 5 :(得分:2)

对于像我这样在模拟器中遇到此问题的人,还有一个提示:尝试释放模拟器中的可用存储空间。这对我有用。

许多测试应用程序和之前开发的应用程序已安装XD

答案 6 :(得分:1)

如果您已经在设备上安装了应用程序,请将其删除。它为我工作

答案 7 :(得分:1)

如果您的设备或仿真器具有与您正在构建的应用程序同名的应用程序。只需删除旧的。它将解决问题。

答案 8 :(得分:1)

只需转到开发人员选项,然后在调试选项下方启用通过USB安装。

答案 9 :(得分:0)

即使我有同样的问题,但重新启动genymotion并运行“react-native run-android”再次为我工作。 在运行上述命令之前,请确保genymotion正在运行。

答案 10 :(得分:0)

可能的原因

  

我最近遇到过这个问题,我第一次开发了一个名为的应用程序   '对myApp'在CordovaJS中,app域名是com.myapp并且拥有它   安装(这是在我做出反应之前的几个月)。然后,当我   切换到react-native我用域com.myapp做了一个应用程序并运行   你遇到了同样的问题。

所以我发现在域名和来源方面存在冲突。

解决方案:

  

卸载具有与您相似的域名的应用   安装例如com.example,然后重新启动手机。

它对我有用,我希望它也适合你。

答案 11 :(得分:0)

01-卸载设备中安装的应用程序

03-然后运行

  • adb kill-server

02-然后再次运行

  • react-native run-android

答案 12 :(得分:0)

此问题恰好发生在Xiomi设备中。在开发人员选项中,您不必禁用MIUI优化(禁用此选项将不会同步您的帐户),而是启用“ USB调试”选项以及“通过USB安装”和“ USB调试(安全设置)”。 这将解决问题:)

答案 13 :(得分:0)

Sometimes it may happened due to insufficient storage within emulator.Try something like below:
   1. Stop emulator
   2. Open AVD Manager -> Wipe Data
   3. Start emulator and run your project.

答案 14 :(得分:0)

第1步:运行(杀死所有adb)

 adb kill-server

第2步:列出所有连接的设备(获取仿真器ID)

adb devices 

步骤3 :(将ID替换为步骤2中列出的ID)

react-native run-android --deviceId ID

注意:确保以前的应用已在模拟器或物理设备中卸载

答案 15 :(得分:0)

在MI设备中。我通过转到开发者选项->启用通过USB安装解决了这个问题。我希望它有用!