Ответ 1
1. Откройте плагины/[ваше имя плагина]/plugin.xml
2. удалите эту строку:
`<uses-feature android:name="android.hardware.camera" android:required="false" />`
3. перестройте свой проект
Я использую два разных плагина в кордове, которые имеют одинаковый uses-feature
, один с android:required="false"
и один без.
Это приводит к ошибке при построении:
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
1. Откройте плагины/[ваше имя плагина]/plugin.xml
2. удалите эту строку:
`<uses-feature android:name="android.hardware.camera" android:required="false" />`
3. перестройте свой проект
В дополнение к удалению повторяющихся строк в файле plugins.xml перейдите в [ваш проект]/platforms/android/android.json и удалите повторяющиеся строки в файле.
Повторно запустите свой командный терминал, прежде чем компилировать проект.
У меня была нормальная проблема с Cordova-плагином-камерой и телефоном-плагином-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
Затем удалите файл phonegap-plug-barcodescanner пакета package.json. Run:
npm install
ionic cordova platform add android
Далее выполните новую сборку:
ionic cordova run android
Затем добавьте плагин еще раз:
ionic cordova plugin add phonegap-plugin-barcodescanner
Следующие шаги помогли мне решить эту проблему:
Удалите дубликаты элементов из вашего config.xml
Удалите дубликаты объектов из файла платформы /android/android.json.
Удалите дубликаты элементов из файла платформы /android/app/src/main/AndroidManifest.xml.
Закройте вашу IDE/текстовый редактор (особенно если вы используете VS Code).
Теперь запустите 'Cordova build android'.
Вот как это наконец-то сработало для нас в нашем проекте Ionic 3
. Вы должны удалить одну из повторяющихся записей с platforms/android/AndroidManifest.xml
:
<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, а не при каждой сборке.
простой cmd для вашей проблемы:
cordova clean
cordova build