java - Javax.json.bind 与 Android 问题
问题描述
大家好,我正在尝试将 javax.json-b 与 Android 一起使用并出现错误。所以我使用这一行将库包含在 gradle 中:
实现组:'javax.json.bind',名称:'javax.json.bind-api',版本:'1.0'
然后以通常的方式导入它:
导入 javax.json.bind.annotation.JsonbProperty
编译得很好,但是当我在任何设备上运行它时,它给了我这个:
../../../home/.gradle/caches/modules-2/files-2.1/javax.json.bind/javax.json.bind-api/1.0/10332203cb05f4ab2e8bf058bfd7d99648c5ca68/javax.json.bind-api- 1.0.jar
非法类文件:类模块信息缺少超类型。
所以我清除了 gradle 缓存,以防它是一个坏版本,同样的事情发生了,我从 build.gradle 文件中删除了导入实现行并从 maven 存储库下载了 jar,但我遇到了类似的问题。
我最初认为这意味着 Android 手机上的 Java 版本与编译 jar 的版本不兼容。但我不太相信这一点,现在我认为这是另一回事。任何人都可以为我解释一下吗?
达米安
解决方案
module-info 仅与 Java 9 及更高版本一起用于 Java 9 添加的新“Jigsaw”模块功能: https ://www.oracle.com/corporate/features/understanding-java-9-modules.html
AFAIK Android 尚不支持 Java 9,但支持大部分(如果不是全部)Java 8。Android Studio 3 是否支持用于 Android 开发的 Java 9?如果支持,支持 Java 9 的哪些特性?
可以删除编译后的文件module-info.class,不用模块的时候不需要。您将在 jar 文件 javax.json.bind-api-1.0.jar 中找到它,您可以使用任何 zip 文件或 jar 工具(如 winzip、winrar、gzip、zip 或 jar)将其删除。
推荐阅读
- ruby-on-rails - 在 Mac 上安装 Ruby 2.6.6 或 2.6.7
- powerbi - 计算中位数,同时保留 Power BI 中的其他列
- algorithm - 为受限范围划分问题设计优化算法
- c++ - 如何从数组中间开始循环?
- typescript - WebSocket:如何使用 weboscket 连接从已构建的服务器接收消息?
- c# - 如何从视图 .NET Core API 中的选定值中获取数据?
- python - 如何解决散列时python中的内存错误
- reactjs - React 的依赖项安装错误
- oracle - SELECT Oracle 中一组条件的查询数据
- javascript - 使用 jQuery 获取图像权重时更改度量单位