android - 是否有解决 Android 错误 "Unable to resolve virtual method java/beans/PropertyDescriptor"的方法?

标签 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.

看来dalvik不支持内省(introspection)和反射相关的Java类。我想弄清楚两件事。是否计划在不久的将来在 dalvik 中支持这一点?其次,有没有人建议解决这个问题?

最佳答案

It appears that Java classes related to introspection and reflection are not supported by dalvik.

AFAIK,不是一概而论。 Android 核心团队的目标之一是保持固件体积小,以降低设备成本。这样做的一个副作用是只包含来自 java.*javax.* 他们认为必不可少的类。最初,Android 中不存在任何java.beans.*;现在,一些类和接口(interface)可用,但不是整个包。

Is that a plan to support this in dalvik in the near future?

当我们其他人知道时,您就会知道,也就是说,只有当它出现在发布中时。

Secondly, does anyone have a suggestion for a work around that would get around this problem?

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

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

有可能jarjar也可以为此做点什么——我还没有使用过这个工具,也不知道它的功能范围。

关于android - 是否有解决 Android 错误 "Unable to resolve virtual method java/beans/PropertyDescriptor"的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488236/

相关文章:

android - android.permission.PACKAGE_USAGE_STATS 是否仅适用于系统应用程序?

Android:我可以在 AsyncTask 中使用通用返回类型吗 - doInBackGround

android - 我无法让 Cast Companion Library 通知发挥作用

Android dalvik虚拟机

java - Java 8 和 Bean Info Introspector 中接口(interface)中的默认方法

c# - DataGridAutoGeneratingColumnEventArgs.PropertyDescriptor 是什么类型的?

Android 4.1 MediaCodec 支持的分辨率

java - 如何在 root 设备上调用 Android 中的 J2SE JVM 之类的 Java 类?

dalvik - android应用程序类变量变为空

c# - 从属性网格重置属性