FAQ JavaFXConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 507, dernière mise à jour : 2 novembre 2016 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur le forum JavaFX de http://java.developpez.com ainsi que l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
- Comment développer pour Android ?
- Quels sont les prérequis pour développer pour Android ?
- Comment créer un projet JavaFX pour Android ?
- Comment compiler le projet JavaFX pour Android ?
- Comment transférer le fichier APK vers l'émulateur Android ?
- J'ai l'erreur INSTALL_FAILED_NO_MATCHING_ABIS lors du transfert ?
- J'ai l'erreur INSTALL_FAILED_ALREADY_EXISTS lors du transfert ?
- Comment accéder aux API Android ?
Note : le support de JavaFX sur Android est encore en phase préliminaire et expérimentale. Le code présenté ici peut ne pas fonctionner correctement ou demander à être modifié pour s'adapter aux dernières évolutions.
En fait, vous n'allez pas développer directement sur un périphérique tournant sur Android : vous allez développer et compiler vos applications sur votre machine de bureau ou un portable. C'est aussi sur cette machine que vous effectuerez les premiers tests pour vérifier que votre application fonctionne.
Ensuite vous déploierez vos applications sur l’émulateur Android disponible dans le SDK pour Android de Google pour les tester et vérifier que nous n'avez pas besoin de les altérer pour mieux s'adapter aux contraintes du périphérique telles que son espace mémoire plus réduit, son CPU peu puissant ou sa surface d'affichage restreinte. Il faudra également faire attention aux différentes résolutions d’écran disponibles en fonction des périphériques ciblés.
Si vous utilisez des senseurs disponibles sur le périphérique tournant sur Android, c'est également sur l’émulateur Android que vous devez tester si votre programme peut y accéder correctement. Par contre, vous devrez inclure les bibliothèques nécessaires à la compilation sur votre machine de développement.
Nous allons lister ici les prérequis pour développer pour Android.
Côté machine de développement :
- une configuration matérielle et logicielle suffisante pour développer des applications en Java. N'importe quel OS qui vous permet de développer en Java conviendra ;
- un IDE permettant de développer en Java ;
- le JDK approprié pour votre machine de développement ;
- le SDK pour Android de Google ;
- le SDK JavaFX pour Dalvik ;
- Apache ANT.
Commencez par créer un nouveau projet JavaFX dans votre IDE préféré. Vous pouvez commencer à coder votre application JavaFX comme à l’accoutumée.
Compilez votre projet et, si vous n'utilisez pas de fonctionnalités ou d'API propres à Android, testez-le pour vérifier qu'il fonctionne puis empaquetez-le dans un fichier JAR.
Note : l’étape suivante ne fonctionne pas sous Windows, semble-t-il à cause d'une limitation du SDK d'Android sur cette plateforme.
Sous Linux ou Mac OS X, créez un fichier script similaire à celui-ci :
Code Bash : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash export JAVA_HOME=/usr/java/jre1.8.0_20 export ANDROID_SDK=$HOME/adt-bundle-linux-x86_64-20140702/sdk export JFX_SDK=$HOME/dalvik-sdk-8u20b3/dalvik-sdk export WORKDIR=$HOME/android-ports export PROJECT_PACKAGE=monpackage.monapp export PROJECT_NAME=MonApp export APP_HOME=$HOME/project/MonApp/dist export JFX_MAIN_CLASS=monpackage.monapp.MonApp export PATH=$ANDROID_SDK/tools:$PATH $JFX_SDK/android-tools/gradlew --info createProject -PDEBUG -PDIR=$WORKDIR/android -PPACKAGE=$PROJECT_PACKAGE -PNAME=$PROJECT_NAME -PANDROID_SDK=$ANDROID_SDK -PJFX_SDK=$JFX_SDK -PJFX_APP=$APP_HOME -PJFX_MAIN=$JFX_MAIN_CLASS |
Modifiez les variables d'environnement pour correspondre à ce que vous avez dans votre machine :
- JAVA_HOME - le répertoire du JRE ou du JDK, nécessaire pour Gradle et ANT ;
- ANDROID_SDK - le chemin d’accès vers le SDK d'Android de Google ;
- JFX_SDK - le chemin d’accès vers le SDK JavaFX pour Dalvik ;
- WORKDIR - le répertoire où le projet de votre port Androd sera généré ;
- PROJECT_PACKAGE - le package de votre application Android ;
- PROJECT_NAME - le nom de votre application Android ;
- APP_HOME - le répertoire contenant le fichier JAR de votre application ;
- JFX_MAIN_CLASS - la classe Application de votre programme JavaFX.
Puis exécutez ce script.
Si tout se passe bien, cela générera un nouveau projet Android dans le répertoire $WORKDIR/$PROJECT_NAME.
Note : le script générera une erreur si un projet Android existe déjà dans le répertoire en question.
Déplacez-vous dans le répertoire contenant le projet Android nouvellement créé.
Ce projet peut être compilé avec les commandes suivantes :
Code Bash : | Sélectionner tout |
1 2 | export JAVA_HOME=/usr/java/jre1.8.0_20 ant clean debug |
Cela compilera un fichier nommé $PROJECT_NAME-debug.apk dans le répertoire bin du projet Android.
Vous devez ensuite transférer ce fichier vers votre émulateur ou votre périphérique Android pour tester l'application.
Cette étape fonctionne aussi bien sous Windows que Linux ou Mac OS X.
Démarrez votre émulateur Android et patientez le temps de son chargement.
Exécutez alors les commandes suivantes :
Code Bash : | Sélectionner tout |
$ANDROID_SDK/platform-tools/adb -e install <chemin d’accès vers le fichier apk>
ou pour Windows :
Code CMD : | Sélectionner tout |
%ANDROID_SDK%\platform-tools\adb -e install <chemin d’accès vers le fichier apk>
Ceci transférera l'image de l'application vers l’émulateur actif.
Cette erreur signifie que votre machine virtuelle Android a été créée en utilisant un couple CPU/ABI, par exemple « Intel Atom (x86) », qui n'est pas compatible avec celui pour lequel l'application a été compilée. Essayez de créer une machine virtuelle utilisant le CPU/ABI compatible tel que « ARM (armeabi-v7a) » et retentez le transfert.
Cette erreur signifie que l'application est déjà installée sur la machine virtuelle. Vous devez la désinstaller avant de tenter de la transférer à nouveau.
Code Bash : | Sélectionner tout |
$ANDROID_SDK/platform-tools/adb -e uninstall <package de l'application>
Ou pour Windows :
Code CMD : | Sélectionner tout |
%ANDROID_SDK%\platform-tools\adb -e uninstall <package de l'application>
Pour pouvoir accéder aux API Android, vous devez rajouter le fichier android.jar dans les dépendances de votre projet. Ce fichier se trouve dans le répertoire platform/<version d'android> dans le SDK pour Android de Google.
Vous devez ensuite rajouter le fichier jfxdvk.jar dans les dépendances de votre projet. Ce fichier se trouve dans le répertoire rt/lib/ext du SDK JavaFX pour Dalvik.
Il est ensuite possible d’accéder aux API en manipulant la classe javafxports.android.FXActivity qui est en fait un Context Android et donc qui peut être fournie aux méthodes de l'API qui en demandent un.
Par exemple, le code suivant permet d’interagir avec le lecteur NFC de l'appareil :
Code Java : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package monpackage.monapplication; import android.content.Context; import android.nfc.NfcAdapter; import android.nfc.NfcAdapter.ReaderCallback; import javafxports.android.FXActivity; [...] public final class Main extends Application implements ReaderCallback { @Override public void start(Stage primaryStage) throws Exception { final Context context = FXActivity.getInstance(); final NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context); nfcAdapter.enableReaderMode(context , this, NfcAdapter.FLAG_READER_NFC_A, Bundle.EMPTY); [...] } @Override public void onTagDiscovered(Tag tag) { System.out.println ("Découverte d'un tag !"); } } |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.