com.android.ddmlib.InstallException:无法建立会话 react-native
Posted
技术标签:
【中文标题】com.android.ddmlib.InstallException:无法建立会话 react-native【英文标题】:com.android.ddmlib.InstallException: Failed to establish session react-native 【发布时间】:2015-12-11 05:16:29 【问题描述】:我正在尝试在我的 nexus5 模拟器中运行 react-native android 应用程序
adb devices
List of devices attached
emulator-5554 device
启动打包器react-native start
正在运行的应用程序 - react-native run-android
在 'reactnative(AVD) - 6.0' 上安装 APK 'app-debug.apk' 无法安装examples/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)
【问题讨论】:
注意react-native run-android
也会启动打包器,不需要手动启动。
我通过简单地创建一个新的安卓虚拟设备解决了这个问题。不完全确定是什么原因造成的。
【参考方案1】:
对于小米设备
对于那些遭受这种痛苦的人,试试 lironess 在Github Comment 中提到的内容
启用开发者模式 - 在您的手机中,进入设置、关于手机并点击 MIUI 版本 7 次。你会看到一个弹出窗口 说你现在是开发者了。 返回设置、其他设置、开发者选项和启用USB调试。 将您的手机连接到您的 PC/Mac 并在手机上授权您的计算机 返回开发者选项,向下滚动找到开启MIUI优化并禁用。您的手机将重新启动 立即尝试 :)
【讨论】:
【参考方案2】:试试看:react-native run-android --deviceId YOUR_ID
。
【讨论】:
【参考方案3】:众所周知,adb 是不稳定的。试试:
使用$ adb kill-server
重新启动 adb
重启模拟器
使用 Genymotion 代替现有的 Google 模拟器。
【讨论】:
@invariant Genymotion 是否支持 google play 服务【参考方案4】:对于您的 AVD 模拟器设置,请尝试确保选中“使用主机 GPU”设置,然后重新启动模拟器并重试。
【讨论】:
对我来说 - 我能够在没有主机 GPU 的情况下完成这项工作(事实上,我必须打开软件渲染才能启动模拟器,这可能是由于我的旧显卡/驱动程序)。我也遇到了这个错误,但事实证明我没有足够的耐心 - 模拟器需要很长时间才能完成,一旦它完成(即手机显示其“桌面”)然后 react-native 能够安装构建【参考方案5】:就我而言,我必须在/sdklocation/platform-tools/ 中运行此命令
adb kill-server
然后再次运行并观察手机上的安装请求。 希望这对某人有所帮助
【讨论】:
【参考方案6】:对于像我这样在模拟器中遇到此问题的人,还有一个提示:尝试释放模拟器中的可用存储空间。这对我有用。
安装了这么多测试应用和以前开发的应用 XD
【讨论】:
是的,存储空间不足也对我造成了此错误。编辑模拟器并添加更多内存解决了这个问题。 这里也一样,只是在我的情况下,真实设备上的存储空间已满。【参考方案7】:如果您的设备或模拟器具有与您正在构建的应用程序同名的应用程序。只需删除旧的。它将解决问题。
【讨论】:
【参考方案8】:如果您已经在设备上安装了应用程序,请删除它。这对我有用
【讨论】:
【参考方案9】:只需转到开发人员选项并在调试选项下方启用通过 USB 安装。
【讨论】:
【参考方案10】:即使我遇到了同样的问题,但重新启动 genymotion 并运行“react-native run-android”再次对我有用。 在运行上述命令之前确保 genymotion 正在运行。
【讨论】:
【参考方案11】:可能的原因
我最近遇到了这个问题,我首先开发了一个名为 CordovaJS 中的“myApp”,其中应用程序域是 com.myapp 并拥有它 安装(这是我开始反应之前的几个月)。然后当我 切换到 react-native 我用域 com.myapp 做了一个应用程序并运行 遇到和你一样的问题。
所以我发现在 domain 和 source 方面存在冲突。
解决方案:
卸载与您具有相似域的应用 安装例如 com.example ,然后重启你的手机。
它对我有用,我希望它也对你有用。
【讨论】:
【参考方案12】:01 - 卸载设备中安装的应用程序
03-然后运行
adb kill-server02 - 然后再次运行
react-native run-android【讨论】:
【参考方案13】:这个问题恰好发生在小米设备上。在开发者选项中,您不必禁用 MIUI 优化(禁用此选项不会同步您的帐户),而是启用“USB 调试”选项以及“通过 USB 安装”和“USB 调试(安全设置)”。 这将解决问题:)
【讨论】:
【参考方案14】: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.
【讨论】:
【参考方案15】:step :1 run(kill all adb)
adb kill-server
第 2 步:列出所有连接的设备(获取您的模拟器 ID)
adb devices
第 3 步:(将 ID 替换为第 2 步中列出的 ID)
react-native run-android --deviceId ID
注意:确保您之前的应用在您的模拟器或物理设备中卸载
【讨论】:
【参考方案16】:在 MI 设备中。我通过转到开发人员选项->打开通过USB安装解决了这个问题。希望有用!
【讨论】:
以上是关于com.android.ddmlib.InstallException:无法建立会话 react-native的主要内容,如果未能解决你的问题,请参考以下文章