我很难确切地知道是什么导致了 adb 上的这个错误,因为我正在使用Kotlin、TornadoFX(一个 JavaFX Kotlin 库)和Gluon和JFXMobile。当我使用 GluonandroidInstall
构建我的项目时,我遇到了这个错误,以及一个黑屏:
java.lang.ClassNotFoundException: Didn't find class "com.my.app.example.Main" on path: DexPathList
我正在尝试在此应用程序中使用 JavaFX 3D,但我认为它不会导致错误。
我检查了我的Android Manifest,包名和我的项目一样。
我的项目层次结构是这样的:
root
libs
src
android
ios
main
kotlin
com.my.app.example
Main.kt
哪个可能导致 Android 无法找到该文件?因为没有 Java 文件夹。
我的 gradle 文件中包含以下所有内容,已成功编译:
apply plugin: 'kotlin'
apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'javafx-gradle-plugin'
apply plugin: 'org.javafxports.jfxmobile'
apply plugin: 'org.jetbrains.kotlin.android.extensions'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'no.tornado:tornadofx:1.7.12'
compile 'no.tornado:tornadofx-android-compat:1.0.1'
compile 'com.gluonhq:charm:4.3.7'
compile fileTree(dir: 'libs', include: '*.jar')
}
这fileTree(dir: 'libs', include: '*.jar')
是我用来为 JavaFX 导入 ObjModels 的外部库,位于libs
我的项目文件夹中。
我怀疑导致此错误的事情:
- 我的 Gradle 文件中没有正确的东西,因为我对 Gradle 很糟糕。
- 我文件夹中的 .jar
libs
未正确包含在 Android apk 中,并以某种方式搞砸了 - Kotlin 文件层次结构以某种方式使 Android 无法找到 Main 类,或者它是 Main.kt 而不是 Main.java 的事实
请注意,这个项目在我的桌面上运行良好,所以我的源代码没有问题,只是 Android 特定端的问题。
任何想法是什么原因造成的?谢谢你的帮助!