无法在设备上运行cordova应用程序或模拟器错误运行

Bha*_*kla 5 android cordova

当我试图通过命令行运行我的Cordova应用程序时.我的构建成功但在模拟器或设备上运行它在命令行上给我一个错误

错误:无法在设备上启动应用程序:错误:无法安装apk到设备:错误:找不到apk架构:arm build-type:debug ERROR运行一个或多个平台:错误:cmd:命令失败退出代码8您可能没有运行此项目所需的环境或操作系统

我在AndroidManifest.xml文件中指定了最小的sdk版本

 uses-sdk android:minSdkVersion="10" android:targetSdkVersion="21" 

在模拟器上我正在运行API版本19,android 4.4.2和在移动设备上运行android 4.4.3并在Sony Xperia ultra t2上启用了USB调试.

Nan*_*ana 0

我认为这是 cordova 中的一个错误(仅在使用 gradle 时出现)。它似乎已在当前 master 分支中修复(您可以与 cordova platform add android@master --usegit 一起使用)

对于旧版本,我是这样解决的:

项目中的 cordova/lib/ 文件夹中有一个文件 build.js 。该文件包含一个函数findOutputApksHelper,用于检查生成的 apk 是否与特定文件名方案匹配。默认情况下,生成的调试 apk 名为 android-debug-unaligned.apk,但该方法会排除所有包含“-unaligned”的文件。我将函数修改如下:

function findOutputApksHelper(dir, build_type) {
    var ret = findApks(dir).filter(function(candidate) {
        // Need to choose between release and debug .apk.
        if (build_type === 'debug') {
            console.log("candidate: "+candidate);
            return /-debug/.exec(candidate);
        }
        if (build_type === 'release') {
            return /-release/.exec(candidate) && !/-unaligned/.exec(candidate);
        }
        return true;
    });

    ret = sortFilesByDate(ret);
    console.log("ret " + ret);
    if (ret.length === 0) {
        return ret;
}

    var archSpecific = !!/-x86|-arm/.exec(ret[0]);
    return ret.filter(function(p) {
        return !!/-x86|-arm/.exec(p) == archSpecific;
    });
}
Run Code Online (Sandbox Code Playgroud)