【问题标题】:An error occurred while running subprocess native-run运行子进程 native-run 时出错
【发布时间】:2019-12-03 12:12:04
【问题描述】:

我是 IONIC 的新手。我正在学习它。
我正在尝试为 android 运行 ionic 应用程序,但它给了我以下错误。

构建成功,但运行子进程 native-run 时出错。
如果我为浏览器运行离子应用程序,那就没问题了。没有错误发生

将我的 IONIC 版本更新到 5.4.9
和 Platform-Tools 到 29.0.5

错误变化:

[native-run] 未找到硬件设备,正在尝试模拟器...
[native-run] 选择模拟器 emulator-5554
[native-run]安装 平台\android\app\build\outputs\apk\debug\app-debug.apk...
[native-run] ERR_UNKNOWN:来自 adb 的非零退出代码:1
[错误]运行子进程本机运行时发生错误。

【问题讨论】:

    标签: android ionic-framework ionic3 native


    【解决方案1】:

    设备脱机...没有设备连接到您的计算机,或者您没有在设备上启用调试。 如果您没有在设备上运行它,请运行命令 ionic cordova run android --emulator 确保您的 android sdk 中有模拟器。

    【讨论】:

    • 我使用了命令ionic cordova run android。我在模拟器中运行应用程序,然后发生此错误。
    • 对我来说,在 Android Studio 中构建一个示例应用程序并运行它解决了这个问题。在 Android Studio 上成功运行后,您就可以使用 cordova 命令了。
    【解决方案2】:

    找了很久才找到解决办法:

    您需要将 google-services.json 文件放在项目目录的根目录中。

    希望对某人有所帮助。

    【讨论】:

      【解决方案3】:

      确保 native-run 可以访问 Android SDK 和 AVD Home,如果两者都找不到,它将无法运行:

      $native-run android --sdk-info
      SDK Location:         /home/<username>/Android/Sdk
      AVD Home:             /home/<username>/.android/avd
      
      API Level:            28
      Packages:             Android SDK Platform 28  platforms;android-28  6
      (!) Missing Packages: Android Emulator  emulator  
                            Google Play Intel x86 Atom System Image  system-images;android-28;google_apis_playstore;x86  /.+/
      
      
      Tools:
      
      Android SDK Build-Tools 28.0.3  build-tools;28.0.3  28.0.3
      Android SDK Platform-Tools  platform-tools  29.0.6
      Android SDK Tools 26.1.1  tools  26.1.1
      

      如果缺少 AVD Home,您应该能够创建一个空的 avd 文件夹以使原生运行愉快:

      mkdir -p $HOME/.android/avd
      

      【讨论】:

        【解决方案4】:

        有时您可能没有在设备上激活开发者模式。

        【讨论】:

        【解决方案5】:

        这是 Ionic 应用程序

        对于那些仍在寻找答案的人......就像我一样! 我在网上尝试了很多选项和答案,但都没有奏效。终于了解到,这可能有很多原因,但就我而言,我的 AVD 中可能有一些东西被破坏了。我有离子应用程序,我通过

        解决了这个问题
        1. 删除所有虚拟设备(AVD 管理器)

        2. 从 SDK 管理器卸载我拥有的 API

        3. 转到你的项目目录并运行(如果你使用电容器,这对你来说是不同的):

          cordova 平台移除 android

        4. 重启电脑

        5. 重新安装(这可能不是每个人都需要)

        6. 阅读此页面并确认您的 android studio 已安装所有必需包或工具https://developer.android.com/studio/intro/update

        7. cordova平台准备android

        8. 离子构建

        9. 离子科尔多瓦运行安卓

        这是你应该看到的(伙计,很高兴看到这个!):

        构建了以下 apk: C:\tech\mobile-app-dev\budgetLenz\platforms\android\app\build\outputs\apk\debug\app-debug.apk native-run.cmd android --app 平台\android\app\build\outputs\apk\debug\app-debug.apk [native-run] 未找到硬件设备,正在尝试模拟器... [native-run] 选择的模拟器 emulator-5554 [native-run] 安装 平台\android\app\build\outputs\apk\debug\app-debug.apk... [native-run] 启动应用程序活动 com.selectsapphire.budgetlenz/com.selectsapphire.budgetlenz.MainActivity... [native-run] 运行成功

        【讨论】:

          【解决方案6】:

          对我来说是这样。

          ionic cordova platform rm android   
          ionic cordova platform add android    
          npm i -g cordova-res    
          ionic cordova resources android --force
          

          【讨论】:

            【解决方案7】:

            我安装了npm i -g cordova-res,然后是ionic cordova resources android --force,最后是ionic cordova run android,它成功了。

            【讨论】:

              【解决方案8】:

              即使我在模拟器上运行应用程序时也遇到了同样的问题。在真实设备上运行时运行良好。正如我在少数地方阅读的那样,这可能是由于设备中可用的存储空间有限。所以我清除了模拟器的内存,它工作正常。下面是删除模拟器内存​​的过程。

              1. 打开 Android Studio 并点击 AVD 管理器。
              2. 右键单击要在其上运行应用程序的模拟器,然后单击擦除数据。
              3. 现在通过执行命令ionic cordova run android 从 Ionic 再次运行应用程序,然后一切正常。

              【讨论】:

                猜你喜欢
                • 2018-05-20
                • 2021-09-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多