android - 如何防止丢失的、未使用的注释类使我的程序崩溃?

标签 android exception classloader

我想使用来自第 3 方库的类,该类用 javax.xml.bind.annotation 中的 @XmlRootElement 进行注释。此注释在 Android 上不存在,并且很难添加(因为它位于 protected 命名空间中)。

我实际上并没有在 JAXB 上下文中使用该类,所以我很乐意忽略注释。然而,Android JVM 不是,它会从类加载器中抛出一个 ClassNotFounException:

 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlAccessorType in loader dalvik.system.PathClassLoader[/data/app/csiro.truststore.client.tssandroidclient-2.apk]
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:251)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:540)
    at java.lang.ClassLoader.loadClass(ClassLoad

有什么方法可以让 Android 忽略注释?

最佳答案

我不知道有什么方法可以忽略它,但是 Proguard将在混淆过程中删除注释。您通常不会混淆开发构建,但您可以将混淆过程配置为忽略所有类,从而只删除注释。

关于android - 如何防止丢失的、未使用的注释类使我的程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9610056/

相关文章:

java - 将输入流转换为位图

java.lang.NoSuchMethodError,两个类都在同一个 JAR 中!

java - JBoss - 同一应用程序中的不同类加载系统 - 可能吗?

android - 没有收到有关 PagedList 更新的通知

android - 如何为 Android 设备的所有体系结构构建 FFMPEG?

java - java和oracle中奇怪的异常问题

php - 如何引发 PDOException?

java - 使用 ClassLoader.getResourceAsStream 加载资源在特定机器上不起作用

java - 服务在线程中运行

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?