2015-12-29 10 views
10

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

Odpowiedz

6

1.Open plugins/[imię i nazwisko plugin] /plugin.xml

2.Zdjąć ta linia:

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

3. odbudować Twój projekt

+3

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

+0

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. –

+1

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. –

3
  1. W dodatku do usuwania duplikatów linii w pliku plugins.xml, przejdź do [twój projekt] /platforms/android/android.json i usuń również duplikaty wierszy w pliku.

  2. Ponownie otwórz terminal poleceń przed ponownym skompilowaniem projektu.

2

Miałem rozsądny problem z cordova-plugin-camera i phonegap-plugin-barcodescanner. Mój dylemat:

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 

Następny usunąć PhoneGap-plugin-barcodescanner z package.json. Run:

npm install 
ionic cordova platform add android 

Następny zrobić nowy build:

ionic cordova run android 

Następnie dodać wtyczkę ponownie:

ionic cordova plugin add phonegap-plugin-barcodescanner 
Powiązane problemy