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.


SommairePlateformes embarquées et mobilesAndroid (8)
précédent sommaire suivant
 

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.

Mis à jour le 23 septembre 2014 bouye

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.

Mis à jour le 23 septembre 2014 bouye

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.

Mis à jour le 17 octobre 2014 bouye

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.

Mis à jour le 17 octobre 2014 bouye

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.

Mis à jour le 17 octobre 2014 bouye

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.

Mis à jour le 17 octobre 2014 bouye

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>

Mis à jour le 17 octobre 2014 bouye

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 !"); 
    } 
}

Mis à jour le 17 octobre 2014 bouye

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2017 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.

 
Responsables bénévoles de la rubrique Java : Mickael Baron - Robin56 -