【问题标题】:Why do I get this error when trying to run my Cordova application in Android?尝试在 Android 中运行我的 Cordova 应用程序时,为什么会出现此错误?
【发布时间】:2018-02-19 03:03:56
【问题描述】:

我下载了“Nexus 5X API 26”并将其添加到 Android Studio 中的“您的虚拟设备”中,这样​​ Cordova 至少有 1 个可能的目标可以在其中运行。

但是,当我运行命令时

cordova run android

终端(在其他几行之后)响应:

BUILD SUCCESSFUL

Total time: 1.305 secs
Built the following apk(s): 
    /Users/karel/Cordova Projects/demo/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=/Users/karel/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
No target specified and no devices found, deploying to emulator
Error: Cannot read property 'replace' of undefined

当我从 Android Studio 中的应用程序运行模拟器时,它运行良好,但在使用 cordova 运行命令时运行良好 - 它适用于其他平台。

如果您能帮助我,将不胜感激!

【问题讨论】:

    标签: android cordova android-emulator android-sdk-tools


    【解决方案1】:

    尝试以 API 25 而不是 26 为目标。

    这里报告了问题和他的修复: https://forum.ionicframework.com/t/error-cannot-read-property-replace-of-undefined-android/93297/31

    在文件 /platforms/android/cordova/lib/emulator.js 第 202 行:

    var num = target.split('(API level ')[1].replace(')', '');
    

    您需要将其替换为正则表达式搜索和提取:

    var num = target.match(/\d+/)[0];
    

    因为目标是 Android API 26,它试图用这个来解析它:

    var num = target.split('(API level ')[1].replace(')', '')
    

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2020-09-01
      • 2015-04-16
      • 2021-10-20
      • 2020-10-18
      相关资源
      最近更新 更多