0

最新の payU ライブラリのコンパイルに問題があります。プロジェクトにコンパイル オプションを使用します。

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

プロジェクトでレトロラムダ(Androidでラムダを使用できるlib)を使用しているためです。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 が使用されていましたが、その場合はすべてのラムダがコンパイルされないため、これを変更することはできません。

これをどのように解決できるか考えていますか? 今のところ、payU lib に compileOptions 1.7 を追加するだけでこれを解決できると思いますが、これはできません。

4

1 に答える 1

0

PayU のテクニカル サポートに連絡したところ、もう 1 つのグループを gradle インポートから除外する必要があるという情報を受け取りました。

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

両方の PayU lib インポートに追加する必要があります。

于 2016-08-30T15:21:23.737 に答える