簡體   English   中英

com.android.ddmlib.InstallException: 無法建立會話 react-native

[英]com.android.ddmlib.InstallException: Failed to establish session react-native

我正在嘗試在我的 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)

對於小米設備

對於那些遭受此痛苦的人,請嘗試 lironess 在Github 評論中提到的內容

  1. 啟用開發者模式- 在您的手機中,轉到設置,關於手機,然后單擊 MIUI 版本 7 次。 您會看到一個彈出窗口,顯示您現在是一名開發人員。
  2. 返回設置其他設置開發人員選項啟用 USB 調試
  3. 您的手機連接到您的 PC/Mac 並在手機上授權您的計算機
  4. 返回開發人員選項,向下滾動以找到打開 MIUI 優化並禁用它。 您的手機將重新啟動
  5. 現在就試試 :)

嘗試: react-native run-android --deviceId YOUR_ID

眾所周知,adb 是片狀的。 嘗試:

  • 使用$ adb kill-server重新啟動 adb
  • 重啟模擬器
  • 使用Genymotion而不是股票谷歌模擬器。

對於您的 AVD 模擬器設置,請嘗試確保選中“使用主機 GPU”設置,然后重新啟動模擬器並重試。

就我而言,我必須在
/sdklocation/平台工具/

 adb kill-server

然后再次運行並觀察手機上的安裝請求。
希望這有助於某人

對於像我這樣在模擬器中遇到此問題的人,還有一個提示:嘗試釋放模擬器中的可用存儲空間 那對我有用。

安裝了這么多測試應用程序和以前開發的應用程序 XD

如果您的設備或模擬器有一個與您正在構建的應用程序同名的應用程序。 把舊的去掉就好了。 它將解決問題。

如果您已經在設備上安裝了應用程序,請刪除它。 這對我有用

只需轉到開發人員選項並在調試選項下方啟用通過 USB 安裝。

即使我也有同樣的問題,但重新啟動 genymotion 並再次運行“react-native run-android”對我有用。 在運行上述命令之前確保 genymotion 正在運行。

可能的原因

我最近遇到了這個問題,我首先在 CordovaJS 中開發了一個名為“myApp”的應用程序,其中應用程序域是 com.myapp 並安裝了它(這是我開始反應之前的幾個月)。 然后,當我切換到 react-native 時,我使用域 com.myapp 做了一個應用程序,並遇到了與您相同的問題。

所以我發現在 domain 和 source 方面存在沖突。

解決方案 :

卸載與您正在安裝的應用程序具有相似域的應用程序,例如 com.example,然后重新啟動您的手機。

它對我有用,我希望它也對你有用。

01 - 卸載設備中安裝的應用程序

03-然后運行

  • adb 殺死服務器

02 - 然后再次運行

  • react-native run-android

此問題恰好發生在小米設備中。 在開發人員選項中,您不必禁用 MIUI 優化(禁用此項不會同步您的帳戶),而是啟用“USB 調試”選項以及“通過 USB 安裝”和“USB 調試(安全設置)”。 這將解決問題:)

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.

步驟:1運行(殺死所有亞行)

 adb kill-server

第 2 步:列出所有連接的設備(獲取您的模擬器 ID)

adb devices 

第 3 步:(將 ID 替換為第 2 步中列出的 ID)

react-native run-android --deviceId ID

注意:確保您之前的應用程序已在模擬器或物理設備中卸載

在 MI 設備中。 我通過轉到Developer options -> 打開 Install via USB解決了這個問題。 我希望它有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM