2017-02-22 2 views
0

Ich bin eine Hybrid-Mobile-App mit Cordova erstellen.Cordova Plugins werden nicht nach Grunt Build zu .apk

Ich füge die cordova-Kontakte und cordova-calendar-Plugins dem Projekt hinzu und diese werden in android.json angezeigt und die Features werden unter platforms/android/res/xml/config.xml aufgelistet.

baue ich die apk

Grunzen build mit --platform = android

Nachdem ich das Android-debug.apk auf decompiling bekommen, finde ich, dass die Manifest-Datei die Lese alle enthält und schreiben Berechtigungen und die Plugins scheinen vorhanden zu sein.

Aber in den Js viewModels der Hybrid-App werden die Plugins nicht gefunden.

Fehler: Nicht definiert

var Optionen = new ContactFindOptions()

Schritte folgen:

Im cordova Projekt

cordova Plugin hinzufügen cordova-Plugin -Kontakte

Geprüft, dass die Änderungen in der Konfig und JSON-Dateien gesehen werden.

Gibt es irgendwelche Verbindungsschritte, die ich verpasst habe? Ist es notwendig, dass die Cordova Plugins in der Gruntfile.js verfügbar sind?

UPDATE: Cordova Plugin Versionen ::

cordova-Plugin-Kalender: 4.5.5, cordova-Plugin-Kontakte: 2.2.1

einige weitere On-Browsing, haben herausgefunden, dass bestimmte Versionen des Plugins auf falsche js-Dateien verwiesen haben. Ist es hier der gleiche Fall?

Antwort

0

Die Verpackung von grunt zum Erstellen einer apk ist so, dass cordova.js in die HTML-Basisseite eingefügt wird, wenn die App auf einem Gerät installiert und bereitgestellt wird.

Dann innerhalb cordova.js finden wir die getPathPrefixMethod(), die durch alle Skript-Tags rekursiv ist, um cordova.js zu finden. Dieses Pfadpräfix wird auch zum Suchen der cordova_plugins.js verwendet.

Wenn wir explizite cordova.js-Skript-Tags hinzufügen, werden unsere Plugins höchstwahrscheinlich nicht aufgenommen.

Während des Debuggens mit Emulator und Chrome ist das Problem aufgetreten.

Hoffe, das hilft. Vielen Dank .

0

Sie können Plugins überprüfen, die installiert werden oder nicht von der Befehlszeile aus, indem Sie unterhalb des Befehls im App-Ordner zünden.

cordova plugin ls

Auf diese Weise werden Sie wissen, was alle Plugins installiert sind.

Falls Ihr Plugin aufgeführt ist. Dann denke ich, Problem kann Android-Plattform-Kompatibilität mit Plugin sein. (Android 6+ hat Berechtigungsupdates, die zu inkompatiblen Plugins geführt haben)

Sie können versuchen, die Plattform durch folgenden Befehl zu entfernen.

cordova platform rm android

Und dann fügen Sie wieder von unten Befehl

cordova platform add android

Hinweis: Sobald Sie Ihre Plattform entfernen Sie Assets (Icons und Splash-Screen Bilder & andere Plattform verlieren wird verwandten Fixes im platform \ android Ordner gemacht. Kopieren Sie diese Dateien, bevor Sie die Android-Plattform entfernen.

Durch das Entfernen und Hinzufügen von Android-Plattform wird Cordova Plugins neu installieren und das könnte Ihr inkompatibles Plugin-Problem beheben.

Verwandte Themen