Android Studio中Selenium项目构建失败求助
问题分析
从你的报错信息和配置来看,核心问题是Java 8特性(默认接口方法、Invoke-customs等)在低版本Android上的兼容性冲突:
- 你当前的
minSdkVersion是14,远低于这些Java 8特性要求的API 24/26 - 引入的Selenium 3.12.0依赖本身依赖了Java 8特性,但你的Gradle配置没开启对应兼容处理
解决方案
下面是一步步的修复步骤:
1. 开启Java 8编译支持与Desugar兼容
在Module级别的build.gradle中添加Java 8编译配置,同时启用Desugar工具,让低版本Android也能支持Java 8特性:
apply plugin: 'com.android.application' android { compileSdkVersion 27 defaultConfig { applicationId "com.example.pierreabichacra.appiumtest" minSdkVersion 14 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } // 添加Java 8编译配置 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 // 启用Desugar支持低版本Android coreLibraryDesugaringEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { // 添加Desugar依赖库 coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2' // 你的其他依赖... }
2. 可选:调整minSdkVersion(如果业务允许)
如果你的应用不需要兼容API 14这么低的版本,可以直接把minSdkVersion提升到24或26,原生支持Java 8特性,无需Desugar:
defaultConfig { // ...其他配置 minSdkVersion 24 // ... }
3. 可选:降级Selenium依赖(不推荐)
如果上述方案无效,可以尝试降级Selenium到不依赖Java 8的老版本(比如2.53.1),但这个版本较老,可能会带来其他兼容性问题,优先推荐前两种方案。
验证修复
修改完成后,点击Android Studio顶部的Sync Project with Gradle Files按钮同步配置,然后重新构建项目即可。另外,你的测试代码里有重复的import java.net.MalformedURLException;,可以删掉其中一个保持代码整洁。
内容的提问来源于stack exchange,提问作者pierre abi chacra
相关产品推荐
相关产品推荐

