1. 程式人生 > >ionic3構建過程中遇到的找不到AndroidManifest.xml的問題

ionic3構建過程中遇到的找不到AndroidManifest.xml的問題

wid 分享圖片 ons trees announce style add 新版本 forms

問題如下:

Failed to install ‘ionic-plugin-keyboard‘: Error: ENOENT: no such file or directory, open ‘/Users/theo/Projects/mobile/platforms/android/AndroidManifest.xml‘
    at Object.fs.openSync (fs.js:651:18)
    at Object.fs.readFileSync (fs.js:553:33)
    at Object.parseElementtreeSync (/Users/theo/Projects/mobile/platforms/android/cordova/node_modules/cordova-common/src/util/xml-helpers.js:180:27)
    at 
new AndroidManifest (/Users/theo/Projects/mobile/platforms/android/cordova/lib/AndroidManifest.js:29:20) at AndroidProject.getPackageName (/Users/theo/Projects/mobile/platforms/android/cordova/lib/AndroidProject.js:99:12) at Api.addPlugin (/Users/theo/Projects/mobile/platforms/android/cordova/Api.js:223:57) at handleInstall (
/Users/theo/.nvm/versions/node/v8.1.2/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:594:10) at /Users/theo/.nvm/versions/node/v8.1.2/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:357:28 at _fulfilled (/Users/theo/.nvm/versions/node/v8.1.2/lib/node_modules/cordova/node_modules/q/q.js:787:54) at self.promiseDispatch.done (
/Users/theo/.nvm/versions/node/v8.1.2/lib/node_modules/cordova/node_modules/q/q.js:816:30)

這個問題的原因就是新版本的cordova 7.0.0及以上版本對於新的AndroidManifest.xml路徑還沒有更新,導致找不到AndroidManifest.xml,解決方法如下:

npm uninstall -g cordova
npm install -g [email protected]

即卸載新版本,安裝7.0.0以下的版本,這時候再構建,問題解決。

技術分享圖片

原文鏈接:https://github.com/ionic-team/ionic-plugin-keyboard/issues/304

還有另一種解決辦法,這是Cordova官方的解決辦法:

在config.xml將路徑改為正確路徑

<!-- An existing config.xml -->
<edit-config file="AndroidManifest.xml" target="/manifest/application" mode="merge">

<!-- needs to change to -->
<edit-config file="app/src/main/AndroidManifest.xml" target="/manifest/application" mode="merge">

鏈接:https://cordova.apache.org/announcements/2017/12/04/cordova-android-7.0.0.html

ionic3構建過程中遇到的找不到AndroidManifest.xml的問題