web-dev-qa-db-ja.com

Cordova Android 2つのプラグインからの使用機能の複製

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

15
Automatico

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
9
CaioVncius

1. plugins/[プラグイン名] /plugin.xmlを開きます

2.この行を削除します。

`<uses-feature Android:name="Android.hardware.camera" Android:required="false" />`

3.プロジェクトを再構築します

9
marcozabo
  1. Plugins.xmlファイルの重複行を削除することに加えて、[your project] /platforms/Android/android.jsonに移動して、ファイルの重複行も削除します。

  2. プロジェクトを再度コンパイルする前に、コマンドターミナルを再度開きます。

6
Arthur

次の手順は、この問題を解決するのに役立ちました。

  1. Config.xmlから重複する要素を削除します

  2. Platform/Android/android.jsonファイルから重複オブジェクトを削除します。

  3. Platform/Android/app/src/main/AndroidManifest.xmlファイルから重複する要素を削除します。

  4. IDE /テキストエディターを閉じます(特にVSコードを使用している場合)。

  5. 次に、「cordova build Android」を実行します。

5
Ashwin

あなたの問題のための単純なcmd:

cordova clean 
cordova build
1
developper

これが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プラットフォームを追加するときにのみ、この微調整を行います。

0
Murilo Perrone