Android UNEXPECTED TOP-LEVEL EXCEPTION

本文探讨了解决Android开发中使用Java8特性时遇到的兼容性问题,提供了去除相关设置或降至Java7的解决方案,并介绍了如何处理jar包冲突的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 初次遇到这个错是在build.gradle中添加了

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

 

原因是Android现在最高只支持到jdk7的语言特性

参见

Which JDK version (Language Level) is required for Android Studio?

Is it possible to use Java 8 for Android development?

 

解决的方案也很简单:直接将这段去掉,或者将version降到1.7

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

 参见 

Lambda expressions in android

UNEXPECTED TOP-LEVEL EXCEPTION adding new Module to Android Studio project

 

如果一定要使用java8的新特性,可以参考github的一个开源项目

gradle-retrolambda

 

当然该错误也可能在某个阶段,Google决定支持jdk8的时候就解决了

 

 2. 也有可能是jar冲突

比如,在dependency里面同时设置了v4和v7的android support

Android Studio - UNEXPECTED TOP-LEVEL EXCEPTION

 

比如,友盟的消息推送jar和支付宝sdk冲突

推送组件和支付宝SDK类冲突问题

 

比如,友盟的社会化组件(分享)sdk和微信原生sdk冲突

Unable to execute dex: Multiple dex files define

(注:现在应该是SocialSDK_WeiXin_1.jar和libammsdk.jar取其一)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值