我正在尝试在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.
似乎dalvik不支持与内省和反射相关的Java类。我想找出两件事。这是否计划在不久的将来在达尔维克支持这一点?其次,是否有人建议可以解决这个问题?
答案 0 :(得分:9)
似乎dalvik不支持与内省和反射相关的Java类。
不是全面的,AFAIK。核心Android团队的一个目标是保持固件较小,以降低设备成本。这样做的一个副作用是仅包括他们认为必不可少的java.*
和javax.*
类。最初,Android中没有java.beans.*
存在;现在,有一些类和接口可用,但不是整个包。
这是否计划在不久的将来在达尔维克支持这一计划?
你知道我们其他人何时知道,也就是说,只有当它出现在一个版本中时才会知道。
其次,是否有人建议可以解决这个问题?
如果第三方JAR是开源项目:
java.beans
类并将它们放入项目中bondy.beans
),因为如果您尝试将java.beans
类加载到项目中,Android将不会喜欢它jarjar可能也可以对此做些什么 - 我还没有使用过这个工具,也不知道它的能力范围。
答案 1 :(得分:1)
Apache和谐已经退役很长一段时间了。我正在使用openbeans。它解决了我的所有问题。