有没有解决Android错误"无法解析虚拟方法java/beans/PropertyDescriptor"?

Gre*_*ndy 9 android dalvik propertydescriptor

我试图在Android应用程序中使用第三方jar文件.我已经能够使用jar文件中的一些类了.但是,其中一个类引用了dalvik vm似乎不支持的某些Java类.这些是我在LogCat中看到的一些错误:

Unable to find class referenced in signature java/beans/PropertyDescriptor.
Unable to resolve virtual method java/beans/PropertyDescriptor.getName().
Unable to resolve virtual method java/beans/PropertyDescriptor.getReadMethod().
Unable to resolve static method java/beans/Introspector.getBeanInfo().
Unable to resolve exception class java/beans/IntrospectionException.
Run Code Online (Sandbox Code Playgroud)

似乎dalvik不支持与内省和反射相关的Java类.我想找出两件事.这是否计划在不久的将来在达尔维克支持这一点?其次,是否有人建议可以解决这个问题?

Com*_*are 9

似乎dalvik不支持与内省和反射相关的Java类.

不是全面的,AFAIK.核心Android团队的一个目标是保持固件较小,以降低设备成本.这样做的一个副作用是只包括类java.*javax.*他们的感觉是必不可少的.最初,java.beans.*Android中都不存在; 现在,有一些类和接口可用,但不是整个包.

这是否计划在不久的将来在达尔维克支持这一点?

你会知道我们其他人何时知道,也就是说,只有它出现在一个版本中.

其次,是否有人建议可以解决这个问题?

如果第三方JAR是一个开源项目:

  1. java.beans从Apache Harmony中获取必要的类并将它们放入您的项目中
  2. 将它们重构为一个单独的包(例如bondy.beans),因为如果您尝试将java.beans类加载到项目中,Android将不会喜欢它
  3. 修改第三方JAR以使用您的重构版本的类

jarjar也有可能对此做些什么 - 我还没有使用过这个工具,也不知道它的功能范围.