如何在javafxports项目中包含外部jar?

时间:2019-09-13 07:35:22

标签: java android gradle javafx javafxports

我正在尝试在netbeans上使用gluon插件使用javafxports。 JavaFx可在android上运行,但如果我包括jsoup这样的jar,则在android上只会出现黑屏,但是在Desktop上一切正常。

我尝试将jsoup作为gradle在线依赖项以及本地jar文件都包括在内。我在另一个名为Result.java的项目中使用了一个类,该类导入了jsoup。

--------我的build.gradle的修改部分

dependencies {
    compile 'com.gluonhq:charm:5.0.2'
    compile fileTree(dir: 'libs', include: ['*.jar']) //jsoup-1.12.1.jar
}

jfxmobile {
    downConfig {
        version = '3.8.6'
        // Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
        plugins 'connectivity', 'display', 'lifecycle', 'statusbar', 'storage'
    }
    android {
        manifest = 'src/android/AndroidManifest.xml'
        androidSdk = '/home/oreo/Android/sdk/'   
        compileSdkVersion =29
        buildToolsVersion ="29.0.0"
    }
}

------- Result.java使用的导入

import java.io.*;
import java.util.*;
import org.jsoup.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;

------- Main.java

package com.ignoux;

import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.stage.Screen;
import javafx.stage.Stage;


public class Main extends Application {

    public static void main(String[] args){
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        GridPane root=new GridPane();
        Label l=new Label("Text will be here");
        Button b=new Button("Fetch");
        b.setOnAction((ActionEvent e) -> {
            l.setText(Result.getUrlList());
        });

        root.addRow(0, b);
        root.addRow(1, l);
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.setTitle("JavaFX WebView Example");
        Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
        //set Stage boundaries to visible bounds of the main screen
        primaryStage.setX(primaryScreenBounds.getMinX());
        primaryStage.setY(primaryScreenBounds.getMinY());
        primaryStage.setWidth(primaryScreenBounds.getWidth());
        primaryStage.setHeight(primaryScreenBounds.getHeight());
        primaryStage.show();
    }
}

程序仅用于学习使用相同的Java库(如果可能的话,还可以使用ios)创建桌面和android应用。我以前尝试过hello world按钮,它可以工作,但是将其修改为包含jar则无法正常工作。我只想在按下按钮时将Result类输出打印在标签中,以检查其工作方式。

请帮助我。

0 个答案:

没有答案