首页 文章

使用离子cordova添加平台和构建时出错?

提问于
浏览
0

我正在使用离子来构建移动应用程序 . 当我使用命令:ionic cordova build android / ionic cordova platform add android时会出现以下错误 . 请帮我修理一下 .

'AppMyCity>离子cordova平台添加android

cordova平台添加android --save使用cordova-fetch for cordova-android@~7.0.0

添加android项目......

为Android平台创建Cordova项目:

Path: platforms\android
    Package: io.ionic.starter
    Name: MyCity
    Activity: MainActivity
    Android target: android-26

子项目路径:CordovaLib子项目路径:使用cordova-android@7.0.0创建的应用程序Android项目

检测到Android Studio项目

检测到Android Studio项目

(node:70480)UnhandledPromiseRejectionWarning:SyntaxError:JSON位于JSON.parse()的JSON位于getJson(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ src \ plugman \ util)中的意外标记\ metadata.js:29:31)在Object.exports.get_fetch_metadata(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ src \ plugman \ util \ metadata.js:41:24)at at在_fulfilled的C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ src \ cordova \ platform \ addHelper.js:343:48(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cord.-lib \ node_modules \ q \ q.js:787:54)在self.promiseDispatch.done(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ node_modules \ q \ q.js: 816:30)在C:\ Users \ anhde \的Promise.promise.promiseDispatch(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ node_modules \ q \ q.js:749:13)刷新时的AppData \ Roaming \ npm \ node_modules \ cordova-lib \ node_modules \ q \ q.js:810:14(C:\ Users \ anhde \ AppData \ Roaming \ npm \ node_modules \ cordova-lib \ node_modules \ q \ q .js:108:17)at _combinedTickCallback(internal / process / next_tick.js:131:7)(node:70480)UnhandledPromiseRejectionWarning:未处理的承诺拒绝 . 这个错误源于在没有catch块的情况下抛出异步函数,或者拒绝未使用.catch()处理的promise . (拒绝ID:1)(节点:70480)[DEP0018]弃用警告:不推荐使用未处理的拒绝承诺 . 将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程

1 回答

  • 0

    我已经有一个现有的平台并删除它时遇到了一些问题 . 有时你需要删除项目中的plugins文件夹,而不是再次添加平台 . 你有一些脚本来确保一切正常与android@7.0.0一起使用吗?我不得不修改一些文件,所以所有路径都是正确的 .

    patch-android-studio-check.js

    module.exports = function(context) {
      if (context.opts.cordova.platforms.indexOf('android') < 0) {
        return;
      }
    
      const path = context.requireCordovaModule('path');
      const androidStudioPath = path.join(context.opts.projectRoot, 'platforms/android/cordova/lib/AndroidStudio');
      const androidStudio = context.requireCordovaModule(androidStudioPath);
      androidStudio.isAndroidStudioProject = function() {  return true; };
    };
    

    build-extras.gradle.js

    var fs = require('fs');
    var path = require('path');
    
    if(fs.existsSync(path.resolve(__dirname, '../platforms/android'))) {
      fs.createReadStream(path.resolve(__dirname, 'build-extras.gradle')).pipe(fs.createWriteStream(path.resolve(__dirname, '../platforms/android/build-extras.gradle')));
    }
    

    build-extras.gradle

    android { 
        flavorDimensions "default"
    }
    

    config.xml

    <platform name="android">
            <hook src="package-hooks/build-extras.gradle.js" type="after_platform_add" />
            <hook src="package-hooks/patch-android-studio-check.js" type="before_plugin_install" />
            <hook src="package-hooks/patch-android-studio-check.js" type="before_plugin_add" />
            <hook src="package-hooks/patch-android-studio-check.js" type="before_build" />
            <hook src="package-hooks/patch-android-studio-check.js" type="before_run" />
            <hook src="package-hooks/patch-android-studio-check.js" type="before_plugin_rm" />
    ...
    

相关问题