J'essaie de créer une application android à partir d'un projet javaFX en utilisant javafxports. Actuellement, je suis confronté à un problème lors de l'installation sur un appareil mobile et en le démarrant, il déclenche une exception ConfigurationException. Voici le code à l'aide du fichier:Fichier de configuration de recherche de problème dans le projet androïde javafxports
public class AppConfig extends XMLConfiguration {
/**
*
*/
private static final long serialVersionUID = 550015250032006413L;
private static AppConfig instance;
private static String configFile = "src/main/assets/config.xml";
// Singleton initialiser
static {
instance = new AppConfig(configFile);
}
/**
* Constructor
*
* @param fileName Configuration file name.
*/
private AppConfig(String fileName) {
init(fileName);
}
/**
* Initialize the class.
*
* @param fileName Configuration file name.
*/
private void init(String fileName) {
setFileName(fileName);
try {
load();
} catch (ConfigurationException configEx) {
configEx.printStackTrace();
}
}
Ceci est le fichier gradle:
apply plugin: 'org.javafxports.jfxmobile'
buildscript {
repositories {
jcenter()
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' }
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.3.5'
}
}
repositories {
jcenter()
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
}
mainClassName = "com.example.amladzhov.irisandroid.sample.Client.StartApplication"
jfxmobile {
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
}
dependencies {
compile 'commons-configuration:commons-configuration:1.6'
compile 'org.apache.commons:commons-exec:1.3'
compile 'commons-discovery:commons-discovery:0.5'
compile 'org.apache.axis:axis:1.4'
compile 'javax.xml.rpc:javax.xml.rpc-api:1.1.1'
//compile 'wsdl4j:wsdl4j:1.6.2'
compile 'org.jdom:jdom:2.0.2'
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'
compile group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.3'
}
}
}
Le fichier se trouve dans
src/main/assets/config.xml
D'abord, vous ne pouvez pas attendre que le fichier xml sera placé sous "src" sur runtime; Deuxièmement, le dossier 'assets' sous' main' n'est pas exporté vers android. Bien qu'il existe un dossier 'src/android/assets' que vous pouvez utiliser, vous devez placer le fichier xml sous' src/main/resources', puis charger le fichier en utilisant 'getClass(). GetResources ("/config.xml ") .toExternalForm() '. –
Bonjour José, pouvez-vous s'il vous plaît dites-moi où je devrais mettre le code: getClass(). GetResources ("/ config.xml"). ToExternalForm() –
Si vous avez juste besoin de l'URL du fichier comme une chaîne, vous pourriez faire 'String configFile = AppConfig.class.getResources ("/config.xml "). ToExternalForm()', où 'config.xml' est placé dans'/src/main/resources/config.xml'. –