gluon - 在android应用程序中使用gluon mobile时不断收到NullPointerException
问题描述
当我在 android 设备上运行它时,我的应用程序中出现以下异常。如果我忽略它,因为它被记录为警告,它可以吗?
2019-06-26 13:24:49.942 W/System.err: java.lang.reflect.InvocationTargetException
2019-06-26 13:24:49.942 W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2019-06-26 13:24:49.942 W/System.err: at javafxports.android.FXDalvikEntity.onGlobalLayout(FXDalvikEntity.java:389)
2019-06-26 13:24:49.943 W/System.err: at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:945)
2019-06-26 13:24:49.943 W/System.err: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2351)
2019-06-26 13:24:49.943 W/System.err: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1465)
2019-06-26 13:24:49.943 W/System.err: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7288)
2019-06-26 13:24:49.943 W/System.err: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:979)
2019-06-26 13:24:49.943 W/System.err: at android.view.Choreographer.doCallbacks(Choreographer.java:791)
2019-06-26 13:24:49.944 W/System.err: at android.view.Choreographer.doFrame(Choreographer.java:726)
2019-06-26 13:24:49.944 W/System.err: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:965)
2019-06-26 13:24:49.944 W/System.err: at android.os.Handler.handleCallback(Handler.java:790)
2019-06-26 13:24:49.944 W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
2019-06-26 13:24:49.944 W/System.err: at android.os.Looper.loop(Looper.java:164)
2019-06-26 13:24:49.944 W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6687)
2019-06-26 13:24:49.947 W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2019-06-26 13:24:49.947 W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
2019-06-26 13:24:49.947 W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
2019-06-26 13:24:49.948 W/System.err: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'double javafx.scene.Scene.getHeight()' on a null object reference
2019-06-26 13:24:49.948 W/System.err: at com.sun.javafx.scene.control.skin.TextFieldSkinAndroid.adjustSize(TextFieldSkinAndroid.java:111)
2019-06-26 13:24:49.948 W/System.err: at com.sun.javafx.scene.control.skin.TextFieldSkinAndroid.lambda$showSoftwareKeyboard$643(TextFieldSkinAndroid.java:107)
2019-06-26 13:24:49.948 W/System.err: at com.sun.javafx.scene.control.skin.TextFieldSkinAndroid.access$lambda$2(Unknown Source:4)
2019-06-26 13:24:49.948 W/System.err: at com.sun.javafx.scene.control.skin.TextFieldSkinAndroid$$Lambda$3.accept(Unknown Source:8)
2019-06-26 13:24:49.948 W/System.err: at com.sun.glass.ui.android.DalvikInput.keyboardSize(DalvikInput.java:72)
这是我的 build.gradle 文件,其中包含用于不同平台的本机日志服务。我正在使用 java 1.8 和 gradle-5.1.1 我观察到的是当我尝试使用 PictureService 或 StorageService 但我不确定时会打印此异常。
buildscript {
repositories {
jcenter()
google()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.3.16'
}
}
apply plugin: 'org.javafxports.jfxmobile'
apply from: 'ios-build.gradle'
repositories {
jcenter()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = '<MAIN CLASS>'
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile 'com.gluonhq:charm:5.0.2'
compile 'com.gluonhq:glisten-afterburner:1.4.1'
compile 'com.jfoenix:jfoenix:8.0.8'
// Remove after development
compile 'com.github.javafaker:javafaker:0.18'
// Desktop SQL -> https://github.com/xerial/sqlite-jdbc
desktopRuntime 'org.xerial:sqlite-jdbc:3.8.11.2'
// Embedded SQL -> https://github.com/xerial/sqlite-jdbc
embeddedRuntime 'org.xerial:sqlite-jdbc:3.7.2'
// Android SQL -> https://github.com/SQLDroid/SQLDroid
androidRuntime 'org.sqldroid:sqldroid:1.0.3'
// ios SQL -> https://github.com/robovm/robovm 1.8
}
jfxmobile {
downConfig {
version = '3.8.6'
// Do not edit the line below. Use Gluon Mobile Settings in your project context menu instead
plugins 'browser', 'dialer', 'display', 'lifecycle', 'local-notifications', 'pictures', 'position', 'push-notifications', 'runtime-args', 'settings', 'statusbar', 'storage', 'vibration'
}
android {
manifest = 'src/android/AndroidManifest.xml'
compileSdkVersion = 28
minSdkVersion = 15
dexOptions {
javaMaxHeapSize '3g'
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
ios {
infoPList = file('src/ios/Default-Info.plist')
forceLinkClasses = [
'com.gluonhq.**.*',
'javax.annotations.**.*',
'javax.inject.**.*',
'javax.json.**.*',
'org.glassfish.json.**.*',
'SQLite.**.*'
]
}
}
task xcodebuild {
doLast {
xcodebuildIOS("$project.buildDir","$project.projectDir", "Log")
}
}
task installNativeLib (type:Copy, dependsOn: xcodebuild) {
from("$project.buildDir/native")
into("src/ios/jniLibs")
include("*.a")
}
解决方案
推荐阅读
- javascript - Express.js - 待处理的承诺阻止并延迟 express 中的下一个 GET 请求(Node.js)
- gsap - 当移动响应视图设置为触摸模拟和在实际移动设备上时,Bulma 和 scrollTrigger 更改/中断
- python - 在 Plotly 的图例中对每个“图形维度”进行分组
- visual-studio-code - VScode:设备同步
- c++ - 整数计数{0}。我可以在 C++ 中使用花括号初始化变量吗?
- reactjs - 如何在reactjs中禁用eslint检查开发模式
- kotlin - IntelliJ 新 JavaFX 项目剂量工作 - InvalidModuleDescriptorException
- c# - 如果我按右 alt 这个隐藏,当我再次按程序显示和隐藏时
- gcc - 如何在 GCC 中启用所有 Intel Intrinsic 选项?
- hyperledger-fabric - scripts/createChannel.sh:第 40 行:osnadmin:找不到命令频道创建失败