Gradle 编译兼容性异常,payU

Gradle compile commpability exception, payU

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

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

因为我在我的项目中使用了 retrolambda(允许在 Android 上使用 lambda 的库)。添加 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 compatibility 1.7,但我无法更改它,因为在那种情况下我的所有 lambda 表达式都无法编译。

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

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

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

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