2017-08-27 4 views
1

Google a publié il ya quelques mois un plugin gradle pour le support de Java 8 sur Android niveau 24 et plus. Ceci est réalisé en ajoutant la dépendance au fichier de construction gradle:Puis-je utiliser le récent support Java 8 pour Android avec Gluon Mobile?

buildscript { 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.4.0-alpha7' 
    } 
} 

android { 
    compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_8 
    targetCompatibility JavaVersion.VERSION_1_8 
    } 
} 

Est-ce pris en charge avec gluons Mobile?

Répondre

0

J'ai installé builds outils 25.0.3, et sans aucune modification du tout du fichier build.gradle que le plugin gluons génère un projet Vue simple:

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'org.javafxports:jfxmobile-plugin:1.3.8' 
    } 
} 

apply plugin: 'org.javafxports.jfxmobile' 

repositories { 
    jcenter() 
    maven { 
     url 'http://nexus.gluonhq.com/nexus/content/repositories/releases' 
    } 
} 

mainClassName = 'com.gluonandroid24.GluonAndroid24' 

dependencies { 
    compile 'com.gluonhq:charm:4.3.7' 
} 

jfxmobile { 
    downConfig { 
     version = '3.6.0' 
     // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead 
     plugins 'display', 'lifecycle', 'statusbar', 'storage' 
    } 
    android { 
     manifest = 'src/android/AndroidManifest.xml' 
    } 
    ios { 
     infoPList = file('src/ios/Default-Info.plist') 
     forceLinkClasses = [ 
       'com.gluonhq.**.*', 
       'javax.annotations.**.*', 
       'javax.inject.**.*', 
       'javax.json.**.*', 
       'org.glassfish.json.**.*' 
     ] 
    } 
} 

je peux inclure Java 8 flux:

public BasicView(String name) { 
    super(name); 

    Label label = new Label("Hello JavaFX World!"); 

    Button button = new Button("Change the World!"); 
    button.setGraphic(new Icon(MaterialDesignIcon.LANGUAGE)); 
    button.setOnAction(e -> label.setText("Sum: " + Stream.of("1", "2", "5") 
      .mapToInt(Integer::parseInt) 
      .sum())); 

    VBox controls = new VBox(15.0, label, button); 
    controls.setAlignment(Pos.CENTER); 

    controls.getChildren().stream() 
      .filter(Label.class::isInstance) 
      .forEach(System.out::println); 

    setCenter(controls); 
} 

et exécutez le projet sur Desktop et déployez-le et exécutez-le avec succès sur Android (au moins sur mon appareil avec Android 7.1.1). Évidemment pas sur iOS.

Le plugin jfxmobile recherche déjà la dernière version de build-tools que vous avez installée sur $ AndroidSdk/build-tools. Dans le cas où vous souhaitez définir certaines options, vous pouvez définir:

jfxmobile { 
    ... 
    android { 
     manifest = 'src/android/AndroidManifest.xml' 

     buildToolsVersion = '25.0.3' 
     compileSdkVersion = '25' 
     minSdkVersion = '25' 
     targetSdkVersion = '25' 
    } 
} 
+0

Je vois, merci. BTW, il y a un problème avec le plugin gluon et eclipse (avec Buildship) qui ne vous laissera pas terminer le nouvel assistant de projet. Quelqu'un l'a posté [ici] (https://stackoverflow.com/questions/42953287/eclipse-gluon-new-project-does-not-finish) donc si le problème est du côté de gluon, vous devriez peut-être le signaler. – Mark

+1

Merci, c'est un problème connu: le nouveau Buildship 2+ rompt la compatibilité avec Buildship 1.0. +, Qui est celui fourni avec le plugin. Cela a déjà été signalé. La solution pour l'instant est de revenir à Buildship 1. –