0

我在编译最新的 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 才能解决这个问题,但我不能这样做。

4

1 回答 1

0

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

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

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

于 2016-08-30T15:21:23.737 回答