Cordovaに2つの異なるプラグインを使用しています。どちらも同じuses-feature
で、1つはAndroid:required="false"
あり、もう1つはありません。
これにより、ビルド時にエラーが発生します。
processDebugManifest
/path/to/project/platforms/Android/AndroidManifest.xml:31:5 Error:
Element uses-feature#Android.hardware.camera at AndroidManifest.xml:31:5 duplicated with element declared at AndroidManifest.xml:27:5
/path/to/project/platforms/Android/AndroidManifest.xml:32:5 Error:
Element uses-feature#Android.hardware.camera.autofocus at AndroidManifest.xml:32:5 duplicated with element declared at AndroidManifest.xml:28:5
/path/to/project/platforms/Android/AndroidManifest.xml:0:0 Error:
Validation failed, exiting
:processDebugManifest FAILED
.....
ERROR building one of the platforms: Error: /path/to/project/platforms/Android/cordova/build: Command failed with exit code 1
You may not have the required environment or OS to build this project
コンパイルされたマニフェストは、ビルド時に次のようになります。
...
<uses-feature Android:name="Android.hardware.camera" Android:required="false" />
<uses-feature Android:name="Android.hardware.camera.autofocus" Android:required="false" />
<uses-feature Android:name="Android.hardware.camera.flash" Android:required="false" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature Android:name="Android.hardware.camera" />
<uses-feature Android:name="Android.hardware.camera.autofocus" />
...
これを修正するために私ができることはありますか?
cordovaバージョン5.4.1
Cordova-plugin-cameraとphonegap-plugin-barcodescannerで正気の問題がありました。私の修正:
ionic cordova platform rm Android
ionic cordova platform rm ios
ionic cordova plugin rm phonegap-plugin-barcodescanner
rm -r plugins
rm -r node_modules
rm package-lock.json
次に、package.jsonのphonegap-plugin-barcodescannerを削除します。実行:
npm install
ionic cordova platform add Android
次に、新しいビルドを実行します。
ionic cordova run Android
次に、プラグインを再度追加します。
ionic cordova plugin add phonegap-plugin-barcodescanner
1. plugins/[プラグイン名] /plugin.xmlを開きます
2.この行を削除します。
`<uses-feature Android:name="Android.hardware.camera" Android:required="false" />`
3.プロジェクトを再構築します
Plugins.xmlファイルの重複行を削除することに加えて、[your project] /platforms/Android/android.jsonに移動して、ファイルの重複行も削除します。
プロジェクトを再度コンパイルする前に、コマンドターミナルを再度開きます。
次の手順は、この問題を解決するのに役立ちました。
Config.xmlから重複する要素を削除します
Platform/Android/android.jsonファイルから重複オブジェクトを削除します。
Platform/Android/app/src/main/AndroidManifest.xmlファイルから重複する要素を削除します。
IDE /テキストエディターを閉じます(特にVSコードを使用している場合)。
次に、「cordova build Android」を実行します。
あなたの問題のための単純なcmd:
cordova clean
cordova build
これがIonic 3
プロジェクトで最終的に機能した方法です。 platforms/Android/AndroidManifest.xml
から重複するエントリの1つを削除する必要があります:
<manifest ...>
...
<uses-feature Android:name="Android.hardware.camera"/>
...
<uses-feature Android:name="Android.hardware.camera" Android:required="true" />
</manifest>
また、platforms/Android/android.json
から:
{
"xml": "<uses-feature Android:name=\"Android.hardware.camera\" />",
"count": 1
},
...
{
"xml": "<uses-feature Android:name=\"Android.hardware.camera\" Android:required=\"true\" />",
"count": 1
}
PS:すべてのビルドではなく、Androidプラットフォームを追加するときにのみ、この微調整を行います。