gpt4 book ai didi

java - 使用使用 java.beans 类(Introspector、BeanInfo 或 PropertyDescriptor)的 jar

转载 作者:IT老高 更新时间:2023-10-28 23:10:32 25 4
gpt4 key购买 nike

我有使用 java.beans.Introspectorjava.beans.BeanInfo 的第 3 方 jar(我无法更改)和 java.beans.PropertyDescriptor.

如何在我的 android 应用程序中使用该 jar?

无法从第 3 方 jar 加载类(使用 Introspector):

WARN/dalvikvm(780): VFY: unable to resolve static method 6325: Ljava/beans/Introspector;.getBeanInfo (Ljava/lang/Class;)Ljava/beans/BeanInfo;
WARN/dalvikvm(780): VFY: unable to resolve exception class 962 (Ljava/beans/IntrospectionException;)
WARN/dalvikvm(780): Verifier rejected class Lorg/thirdpartyjar/SomeClass;

最佳答案

很明显 java.beans 包在 android 上不完整。常见的解决方案是重新打包 java.beans 和依赖它们的 jar 以使用不同的包名而不是 java.beans。这正是前面提到的openbeans 所做的。 android 错误消息中的一条有趣的 qoute 指出:如果您发现自己无法做到这一点,那么这表明您所走的道路最终会导致痛苦、痛苦、悲伤和悲叹。

为了避免这条路,我将首先研究实际使用 openbeans 的选项并尝试强制第 3 方使用这些选项。从您所写的内容来看,尚不清楚 jar 是不能更改还是不允许更改(您提到两者)。我不知道更换 jar 的法律含义,但从技术上讲,它总是可能的,例如尝试逆向工程类(class),使用 aspectj 之类的东西做一些构建时间检测。如果不允许这样做,我认为可以进行运行时检测,例如dexmaker可以为使用 java.beans 的第三方类创建代理,并且您可以重新实现该类的一部分。

还搜索了一下我看到的主题 this .他们只是使用 java.beans 包并为 android 编译它。这对我来说似乎很脆弱,但看起来它正在工作。

不幸的是,这不是一个解决方案,只是我想分享的想法。希望你觉得这些有用。

关于java - 使用使用 java.beans 类(Introspector、BeanInfo 或 PropertyDescriptor)的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15065545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com