Używam dwóch różnych wtyczek do cordova, które mają ten sam uses-feature
, jeden z android:required="false"
i jeden bez.Powielona funkcja Cordova Android z dwóch wtyczek
Skutkuje to błędem upon produkcji:
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
Skompilowany manifestu zawiera następujące pozycje, gdy wbudowane:
...
<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" />
...
Czy mogę coś zrobić, aby rozwiązać ten problem?
wersja Cordova 5.4.1
To jest tylko tymczasowym rozwiązaniem. Za każdym razem, gdy ponownie instaluję bibliotekę, ten problem powróci. Właściwie zastosowałem podobną "poprawkę" do mojego projektu, ale myślę, że jest to problem w cordova, gdzie nie sprawdza atrybutów w instrukcjach 'uses-features'. – Automatico
Wpadam na to tak często. Nawet ręczne usunięcie wpisu z pliku plugin.xml nie zawsze go naprawia. Wygląda na to, że jest on uruchamiany na żywo dla kompilacji, mimo że nie aktualizuje tego, co znajduje się w folderze wtyczek. To bardzo frustrujące. –
Korzystając z Cordova 6.2.0, musiałem usunąć zduplikowane linie z platform/android/AndroidManifest.xml i platform/android/android.json, aby uzyskać działanie kompilacji. –