`
lynen
  • 浏览: 128132 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

jar包编译所用的jdk版本不一致导致的问题

 
阅读更多

所维护的app中使用到一个外部工程但是是自己维护的sdk,这个sdk最终以jar的形式导入到工程里面

打包成功后,生成的apk在使用过程中,经常性的出现java.lang.NoClassDefFoundError这样的问题,查看对应的class文件,在jar包中是存在的。

仔细检查编译过程的日志,发现有如下信息出现:

Dx bad class file magic (cafebabe) or version (0033.0000)

 

经确认,出现以上问题的原因是:android编译过程中使用的jdk的版本是1.6,但是其中某个jar包在打包的时候使用的jdk却是1.7

也就是说是jdk不一致导致的问题。

使用1.6的jdk编译后,重新生成apk,问题解决。

分享到:
评论

相关推荐

    编译Tika所用的所有16个jar包

    bcprov-ext-jdk15-145.jar bcprov-jdk15-145.jar commons-compress-1.0.jar fontbox-0.8.0-incubating.jar jempbox-1.0.0.jar log4j-1.2.13.jar metadata-extractor-2.3.1.jar pdfbox-0.8.0-incubating-src.jar ...

    Oracle 12C JDBC驱动 jar包 各版本驱动详解

    在Oracle 12C的语境下,ojdbc.jar通常指代的是不特定于Java版本的驱动,这可能意味着它适用于多种JDK版本,但并不保证对所有Java版本都有最佳性能和兼容性。如果项目使用的是Java 8之前的版本,可能需要选择这个版本...

    J2ee常用jar包

    需要注意的是,不同版本的`jar`包可能存在兼容性问题,选择与所用JDK、应用服务器版本匹配的`jar`包至关重要。 综上所述,J2EE中的`jar`包是实现各种功能模块的关键,它们相互协作,共同构建起复杂的业务逻辑和...

    解决 Gradle project sync failed 使用的jdk-15.0.2

    这可能是由于多个原因导致的,其中最常见的原因之一是使用的Java开发工具包(JDK)版本与Gradle不兼容。在本例中,描述中提到了"jdk 15.0.2",这意味着我们正在讨论的是Oracle JDK的特定版本,即15.0.2。 Java是一...

    jdk-17.0.3_windows-x64_bin_zip

    1. **bin**:这个目录包含可执行文件,如`java`, `javac`, `jar`等,用于运行Java应用程序、编译Java源代码和打包类文件。 2. **lib**:库文件的集合,包括JVM(Java虚拟机)运行所需的类库,以及开发工具所用的库...

    iText中所用的jar.zip

    根据压缩包子文件的文件名称列表"iText中所用的jar",我们可以推测压缩包内可能包含的文件有iText的主要库文件,如`itextpdf.jar`,以及可能的依赖库,如Bouncy Castle用于加密或签署PDF文档的`bcprov-jdk15on.jar`...

    jdk配置java的必须配置

    JDK是开发Java应用程序的基础工具包,包含了Java编译器、类库和其他开发工具。正确配置JDK能够确保Java程序正常运行。 #### 标签解析:“jdk配置” 此标签进一步指出了本文将重点介绍JDK的配置方法。JDK配置通常...

    java jdk 32位

    Java JDK(Java Development Kit)是Oracle公司提供的Java语言开发工具包,它包含了编译、调试、性能分析等一系列工具,使得开发者能够创建、测试和部署Java应用程序。 1. **Java JDK组成部分** - **JRE(Java ...

    Android系统外置卡路径查询和Apk反编译所用软件及详细操作步骤

    总结来说,Android系统外置卡路径的查询通常通过ADB的`mount`命令实现,而Apk反编译则涉及到一系列工具,包括Apktool、dex2jar、JD-GUI、Apkdb_zsb和RE管理器。每个工具都有其特定的用途,共同构成了Apk分析的完整...

    apache-maven集合

    - 你的项目所用JDK的版本。 - 项目对新特性的需求,比如新的插件或配置选项。 - 兼容性问题:确保所选Maven版本与项目中其他工具和库兼容。 总之,Apache Maven是Java开发中的重要工具,它通过标准化构建过程,提高...

    java程序调试错误收集

    当运行时出现类似 `java.lang.UnsupportedClassVersionError: Bad version number in .class file` 的异常时,这通常意味着当前使用的JDK版本与编译代码时所用的JDK版本不一致。 **解决办法:** - **确认JDK版本...

    如何反编译android应用以及重编译,签名和对齐优化知识.pdf

    - **下载**:访问Google Code项目页面,根据所用操作系统选择合适的apktool版本。 - **安装**:解压缩下载的文件到工作目录下的`bin`文件夹,例如:`\workspace\apktoolbox\bin`。 3. **密钥文件**:用于签名的...

    sql数据库连接说明书1

    解决办法是调整使用的 JDK 版本,确保其与编译时所用的版本一致。 通过以上步骤,您可以顺利完成 SQL 数据库的连接配置,并进行基本的数据库操作。如果遇到其他问题,请参考官方文档或寻求专业人士的帮助。

    企业级Tomcat部署实践及安全调优1

    在部署Tomcat时,应确保Tomcat版本与开发所用版本一致,同时JDK版本也需要与Tomcat相匹配。在本文示例中,系统环境是CentOS 7.4,使用以下命令查看系统信息: ```bash [root@web03 ~]# cat /etc/redhat-release ...

    bulk-email-sender-v01-mar-14-2008.zip_email_email sender_gmail_批

    早期版本jdk+JAF+javamail(需重新编译源代码,未测试) 已知问题: 1. gmail和hotmail邮箱能够正常收取 126邮箱不能正常收取附件 其他邮箱未测试 2. 中文支持应该没问题 运行: java -jar BulkEmailSender.jar

    Java串口通信程序(程序及注释)可编译运行[归类].pdf

    2. **兼容性问题**:不同的操作系统和Java版本之间可能存在差异,需要确保所用的API兼容当前环境。 3. **错误处理**:在实际应用中,应当增加适当的错误处理机制,比如处理串口打开失败的情况。 #### 五、总结 ...

    Eclipse 3.0 上配置JSP开发环境

    需要注意的是,在实际操作过程中可能遇到各种问题,如插件版本不兼容等,因此建议仔细阅读官方文档并结合实际情况进行调整。此外,随着技术的发展,可能会有更多优秀的工具和插件出现,开发者可以根据自己的需求选择...

    疯狂java光盘内容

    《疯狂Java讲义》 配书光盘 版权所有,侵权必究 2011年12月 ___________________________________________... 如果您使用本光盘中遇到不懂的技术问题,您可以登录如下网站与作者联系: http://www.crazyit.org

Global site tag (gtag.js) - Google Analytics