java - 编译外部库的兼容性问题

标签 java android selenium-webdriver compiler-errors compatibility

我试图将 Selenium WebDriver 用于 Android 应用程序。 (我使用的是最新的AndroidStudio;v2.2)

我关注了this guide所以在我的应用程序的lib中我复制了jar文件(下载的Selenium WebDriver的zip有一个名为“libs”的文件夹,一个名为“client-combined-3.0.0-beta4-nodeps”的jar以及一个依赖项和一个许可证文件[我刚刚复制了“libs”文件夹中的所有jar和外面的另一个jar])

Here's a screenshot with all the libs.

这是 build.gradle (模块:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.example.utente.downall"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions{
        pickFirst("META-INF/LICENSE")
        pickFirst("META-INF/DEPENDENCIES")
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
    compile files('libs/cglib-nodep-3.2.4.jar')
    compile files('libs/client-combined-3.0.0-beta4-nodeps.jar')
    compile files('libs/commons-codec-1.10.jar')
    compile files('libs/commons-exec-1.3.jar')
    compile files('libs/commons-logging-1.2.jar')
    compile files('libs/gson-2.3.1.jar')
    compile files('libs/guava-19.0.jar')
    compile files('libs/hamcrest-core-1.3.jar')
    compile files('libs/hamcrest-library-1.3.jar')
    compile files('libs/httpclient-4.5.2.jar')
    compile files('libs/httpcore-4.4.4.jar')
    compile files('libs/httpmime-4.5.2.jar')
    compile files('libs/jna-4.1.0.jar')
    compile files('libs/jna-platform-4.1.0.jar')
    compile files('libs/junit-4.12.jar')
    compile files('libs/netty-3.5.7.Final.jar')
    compile files('libs/phantomjsdriver-1.3.0.jar')
}

(项目已同步)

执行“run”时出现此错误:

Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.
Error:1 error; aborting
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

所以我进入了 build.gradle (Project: DownAll) 并添加了这些目标/源兼容性,如下所示:

Screnshot

我清理了项目,重建了它,重新同步了它,但仍然是同样的错误。 我该怎么办?

如果有帮助的话,这是我的环境变量,如果有帮助的话:

JAVA_HOME

C:\Program Files\Java\jdk1.8.0_102

ANDROID_HOME

C:\Users\Utente\AppData\Local\Android\sdk;C:\Users\Utente\AppData\Local\Android\sdk\tools;C:\Users\Utente\AppData\Local\Android\sdk\platform-tools

(AppData文件夹已隐藏)

编辑:

向上

最佳答案

我刚刚遇到了完全相同的错误,并发现 com.google.guava:guava:21.0 导致了问题;应用程序在降级到 20.0 后立即开始工作。

所以,我猜你的一些 jar 可能不兼容。

尝试一一降级/删除依赖项。

关于java - 编译外部库的兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39806585/

相关文章:

Java,均匀合并两个数组

Java - Gui 组件不显示

java - 如何使用 java 将语言设置为 PhantomJs Ghostdriver?

java - 无法使用 Robot 类处理 Windows 10 弹出窗口

Python,Selenium : Take a Full-Page Screenshot as . pdf 无分页符,无论页面尺寸如何

java - RxJava 调度器的用例

java - Android:VerticalGridFragment 在使用 ErrorFragment 时导致应用程序崩溃?

android - 收到 SMS 时发送多部分 SMS 并检查是否送达(导致 receive call notallowedexception)

android - 显示 DialogFragment 会引发 "Can not perform this action after onSaveInstanceState"错误

android - 矢量绘图有时会变得模糊