2016-08-23 39 views
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才能解決這個問題,但我無法做到這一點。

+0

在您的項目中,需要PayUMoney嗎?因爲我也面臨這個問題,請嘗試使用Paytm或其他支付網關。實際上,他們在較低的兼容性的情況下建立了這個庫。 – MaAc

+0

是的,在我的情況下是必要的。它需要與iOS應用程序保持一致,並使用PayU的付款小部件。 – marcinm

回答

0

我與PayU的技術支持人員取得了聯繫,並且我收到了另外一組需要從Gradle導入中排除的信息。

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

需要被添加到兩個PayU庫導入。