У меня есть проект Gluon JavafX на Intellij Idea после установки плагина Gluon, в котором я загружаю некоторые статические файлы HTML в браузер JavaFX Webkit.
Теперь, когда я запускаю приложение JavaFX напрямую, я вижу загружаемый HTML, но когда я создаю APK, я не вижу загружаемого HTML. Я пробовал два пути, то есть html/index.html
и index.html
, но для обоих APK мне ничего не показывал в приложении, он просто загружал черный экран.
В соответствии с предыдущим вопросом, который у меня был о Gluon, я переместил статический контент в каталог ресурсов. Это сильно увеличило размер APK и стало подтверждением того, что статический контент находится внутри APK.
Вот главный класс:
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Rewe - Frontend");
java.net.CookieManager manager = new java.net.CookieManager();
java.net.CookieHandler.setDefault(manager);
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1080, 1920);
primaryStage.setScene(scene);
primaryStage.setFullScreen(true);
primaryStage.show();
}
Mybrowser.Java:
public class MyBrowser extends Region {
final String hellohtml = "index.html";
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
public MyBrowser() {
webEngine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> {
if (newValue == Worker.State.SUCCEEDED) {
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("app", this);
}
});
URL urlHello = getClass().getResource(hellohtml);
webEngine.load(urlHello.toExternalForm());
webView.setPrefSize(1080, 1920);
webView.setContextMenuEnabled(false);
}
Вот снимок экрана, на котором показаны статические файлы в соответствующих папках, а также файлы Java:
Тогда почему, когда я открываю APK, я просто вижу черный экран. Я просто поместил «Hello world» в body
из index.html
, даже это не отображается. Любая помощь была бы хороша. Спасибо.
Обновить
Журнал ошибок с adb:
: QuantumRenderer: shutdown
02-12 12:49:24.539 13109 13132 W System.err: java.lang.reflect.InvocationTargetException
02-12 12:49:24.540 13109 13132 W System.err: at java.lang.reflect.Method.invoke(Native Method)
02-12 12:49:24.540 13109 13132 W System.err: at javafxports.android.DalvikLauncher$1.run(DalvikLauncher.java:188)
02-12 12:49:24.540 13109 13132 W System.err: at java.lang.Thread.run(Thread.java:818)
02-12 12:49:24.540 13109 13132 W System.err: Caused by: java.lang.RuntimeException: Exception in Application start method
02-12 12:49:24.540 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
02-12 12:49:24.540 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$137(LauncherImpl.java:182)
02-12 12:49:24.540 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl.access$lambda$1(LauncherImpl.java)
02-12 12:49:24.540 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source)
02-12 12:49:24.540 13109 13132 W System.err: ... 1 more
02-12 12:49:24.540 13109 13132 W System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.net.URL.toExternalForm()' on a null object reference
02-12 12:49:24.541 13109 13132 W System.err: at com.rewetest.MyBrowser.<init>(MyBrowser.java:69)
02-12 12:49:24.541 13109 13132 W System.err: at com.rewetest.Main.start(Main.java:30)
02-12 12:49:24.541 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$144(LauncherImpl.java:863)
02-12 12:49:24.541 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl.access$lambda$8(LauncherImpl.java)
02-12 12:49:24.541 13109 13132 W System.err: at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source)
02-12 12:49:24.541 13109 13132 W System.err: at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$157(PlatformImpl.java:326)
run
на вкладке Gradle и посмотрите, работает ли она. Если нет, сначала устраните проблемы. - person José Pereda   schedule 12.02.2016./adb logcat -v threadtime
и попытайтесь найти исключение в выводе вашего приложения. - person José Pereda   schedule 12.02.2016