web-dev-qa-db-fra.com

Comment compilez-vous et déployez-vous sur une ancienne version d'Android pour ionic/cordova

Utiliser Ionic 1.0.0 beta-8

Après avoir créé une nouvelle application, je l’ai construite et déployée sur un émulateur Nexus 5 et tout a bien fonctionné. Mais quand j'ai essayé de le déboguer sur mon téléphone Android 2.2, j'ai eu cette erreur:

....
-post-build:
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/Android/ant-build
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/Android/CordovaLib/ant-build

debug:

BUILD SUCCESSFUL
Total time: 6 seconds
WARNING : No target specified, deploying to device 'I8972b56ddac'.
Using apk: /home/admin/code/projects/myapp/ionic/platforms/Android/ant-build/HelloCordova-debug-unaligned.apk
Installing app on device...

/home/admin/code/projects/myapp/ionic/platforms/Android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
ERROR: Failed to launch application on device: ERROR: Failed to install apk to device:  pkg: /data/local/tmp/HelloCordova-debug-unaligned.apk
Failure [INSTALL_FAILED_OLDER_SDK]

Error: /home/admin/code/projects/myapp/ionic/platforms/Android/cordova/run: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Process.ChildProcess._handle.onexit (child_process.js:822:5)
ERROR: Unable to run app on platform Android. Please see console for more info.
Exiting.

Comment puis-je utiliser la construction dans ionic/cordova pour les téléphones Android 4.x.x et Android 2.2?

21
Derek

cette question est similaire à la vôtre . stackoverflow

allez sur votre AndroidManifest.xml, trouvez-les pour contrôler votre version de sdk. 

<preference name="Android-minSdkVersion" value="XX"> // value is the API LEVEL
<preference name="Android-targetSdkVersion" value="XX">

* targetSdk = indique à phonegap quelle version de build Android utiliser, 
* MinSdk est de limiter les utilisateurs qui veulent le télécharger. 
Vérifiez le niveau d’API d’Android Build ici

Dans votre cas: pour Android 2.2, utilisez la valeur = 8 (API de niveau 8)

    <preference name="Android-minSdkVersion" value="8"> //Android 2.2
    <preference name="Android-targetSdkVersion" value="17"> //Android 4.2

REMARQUE: je doute qu'Android 2.2 (API de niveau 8) puisse exécuter l'API de niveau 17 (Android 4.2). 

15
vdj4y

Selon Ionic Platform note , Ionic cible les appareils iPhone et Android (actuellement). Il prend également en charge iOS 6+ et Android 4.0+ (bien que la 2.3 devrait fonctionner). Cependant, comme il existe de nombreux appareils Android, il est possible que certains ne fonctionnent pas. Ionic n’était pas garanti pour Android 2.3 et Android 2.2 serait donc hors de portée.

Par conséquent, je pense que c'est la raison pour laquelle vous rencontrez des difficultés.

1
Paullo

Pour info, les fonctionnalités de back-portage de Google de Honeycomb et des versions ultérieures d'Android dans une bibliothèque "de compatibilité". Vous pourrez peut-être l'installer et faire fonctionner votre application sur les anciennes versions d'Android. Vous devez mettre à jour votre SDK Android et installer cette bibliothèque.

Voir Bibliothèque de support Android docs.

Si vous utilisez Ionic, vous pouvez ajouter un script de raccordement qui copie la bibliothèque dans votre projet lorsque vous ajoutez Android en tant que plate-forme ou démarrez une construction.

1
Eno

Modifiez la valeur de "Android-minSdkVersion" dans config.xml de votre projet ionique. Cela devrait ressembler à ci-dessous:

<preference name="Android-minSdkVersion" value="14"/>
0
Yuvraj Patil

Il semblerait que cdvCompileSdkVersion soit utilisé pour déterminer le SDK de build et non la cible targetSdkVersion comme dans les applications Android natives.

0
TheBearF8