0

我使用英特尔 XDK 创建混合应用程序。我将 PlayStore 的应用程序 ID 用作 gkg4.pro.obs

现在,最近我使用 Cordova 切换到 Visual Studio 2015,但是,每当我尝试使用此 ID(即 gkg4.pro.obs)时,编译时都会出现退出代码 8 错误。

如果我正在尝试 gkg.pro.obs 即 id 中没有数字,它工作正常。

我无法将 ID 更改为它已经存在的应用程序。

这个问题有什么解决办法吗?请帮忙

4

1 回答 1

2

这是 Cordova 的限制,Cordova 要求包名称必须类似于com.company.Name。Visual Studio 使用 Cordova CLI 构建和打包应用程序,因此应用程序 ID 不是格式 com.company.Name 会引发构建错误。请注意 VS2013 CPT3.0 是 Cordova 4.0.0

解决方法: 在 C:\Users\[username]\.cordova\lib\npm_cache\cordova-android\3.6.4\package\bin\lib\create.js(Cordova 的一部分)中检查 Android 包名称,您可以修改要使用的包名称验证正则表达式 (!/^[a-zA-Z 0-9 ]+(.[a-zA-Z0-9][a-zA-Z0-9_]*)+$/.test( package_name)) 在下面的方法中。

function validatePackageName(package_name) {
    //Make the package conform to Java package types
    //Enforce underscore limitation
    if (!/^[a-zA-Z]+(\.[a-zA-Z0-9][a-zA-Z0-9_]*)+$/.test(package_name)) {
        return Q.reject('Package name must look like: com.company.Name');
    }

    //Class is a reserved word
    if(/\b[Cc]lass\b/.test(package_name)) {
        return Q.reject('class is a reserved word');
    }

    return Q.resolve();
}

进行上述更改后,清理解决方案并重建项目。

请注意,这只是临时修复,安装 Cordova 将覆盖此文件。

于 2014-11-18T20:58:57.540 回答