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']
}
我正在尝试 运行 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']
}