java - Gradle 编译兼容性异常,payU

标签 java android gradle payu

我在编译最新的 payU 库时遇到问题。我为我的项目使用编译选项:

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

因为我在我的项目中使用了 retrolambda(lib 允许在 Android 上使用 lambdas)。添加payU库后
  compile('com.payu.android.sdk:payment-library-full:1.3.7') {
      exclude group: 'com.android.support', module: 'support-v4'
  }

  compile('com.payu.android.sdk:payment-library-widget:1.3.7') {
      exclude group: 'com.android.support', module: 'support-v4'
  }

我收到一个编译错误:
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.

我在其中使用了许多其他库,但只有在添加了这个库之后,我才会收到此错误。我什至尝试使用兼容 1.7 的单独模块添加它,但它没有帮助。可能像 compileOptions 这样的单个依赖项可能会有所帮助,但我在 gradle 中找不到它。

我还检查了 payU 示例应用程序,他们使用 compileOptions 兼容性 1.7,但我无法更改它,因为在这种情况下我的所有 lambdas 都不会编译。

你知道如何解决这个问题吗?现在我认为只有将 compileOptions 1.7 添加到 payU lib 才能解决这个问题,但我不能这样做。

最佳答案

我与 PayU 的技术支持取得了联系,我收到了需要从 gradle 导入中排除另外一组的信息。

exclude group: 'org.jetbrains', module: 'annotations'

需要添加到两个 PayU 库导入中。

关于java - Gradle 编译兼容性异常,payU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39097779/

相关文章:

java - Apache FreeMarker 中的文本格式(首字母大写,其余字母小写)

java.lang.NoSuchMethodError org.apache.http.client.utils.URLEncodedUtils.encPath

Android C2DM 和 lib 项目

java - ANDing,嵌套查询解析服务器android

android - 找不到构建工具修订版 21.1.1 - sdk 已更新

java - 我如何在build.gradle文件中设置属性以在Java中访问该属性

spring-boot - 从 springBoots `bootJar` gradle 任务中排除特定依赖项

Java 生成字符串的所有可能排列

java - Foursquare API使用:/venue/stats

android - 处理 Android M 应用程序链接中的特定路由