Spring LibGDX Android 申请中缺少 java.beans.Introspector

Missing java.beans.Introspector in Spring LibGDX Android application

我正在尝试 运行 LibGDX 基于 Android 的应用程序,它是使用 Spring 框架构建的(不是 Spring for Android,但普通 Spring)。有一个例外:

ClassNotFoundException: Didn't find class "java.beans.Introspector"

据我所知 Android 运行time 没有像常规 JRE 那样功能齐全的 java.beans 包。

这个问题是否有任何解决方法(可能是一些缺少 classes 的 3d 派对 jar)?

我无法更改包名称,因为使用此 Introspector 的 AnnotationBeanNameGenerator class 是 Spring-Context 的一部分。

正如它最终出现的那样,正常的 Spring(对于 Android 不是 Spring)不能在 Android 上 运行,因为它使用 CGLIB。 CGLIB只能操作Java字节码,但是在Android上有专门的Dalvik字节码。

缺少 java.beans 类 的问题可以通过手动添加这样的 类 来解决(您可以使用一些开源 JRE 实现,例如 Apache Harmony )并传递 --core-library dex 选项。

如何传递--core-library选项:

将以下内容放入 Gradle Android 插件配置的 android 部分:

dexOptions {
    preDexLibraries = false
}

并添加新参数:

tasks.withType(com.android.build.gradle.tasks.Dex) {
    additionalParameters=['--core-library']
}