0
編譯最新的payU庫時遇到問題。我用我的項目編譯選項:Gradle編譯通用性異常,payU
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
,因爲我用retrolambda(LIB允許在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兼容性1.7,但我不能改變這一點,因爲我所有的lambdas在這種情況下都不會編譯。
你知道如何解決這個問題嗎?現在我認爲只有在payU lib中添加compileOptions 1.7才能解決這個問題,但我無法做到這一點。
在您的項目中,需要PayUMoney嗎?因爲我也面臨這個問題,請嘗試使用Paytm或其他支付網關。實際上,他們在較低的兼容性的情況下建立了這個庫。 – MaAc
是的,在我的情況下是必要的。它需要與iOS應用程序保持一致,並使用PayU的付款小部件。 – marcinm