簡體   English   中英

錯誤:Gradle:任務執行失敗':app:preDexDebug'

[英]Error: Gradle: execution failed for task ':app:preDexDebug'

我有一個自己創建的jar從另一個作為庫導入到我的另一個項目中。 當我更改該項目中的代碼並導出一個新的jar來替換舊的時,我再也無法運行我的應用了。 我只收到以下錯誤:

在此輸入圖像描述

我嘗試刪除,添加和添加為依賴項,添加為庫。 似乎沒什么用。 我也做了干凈的構建和重建。

過去我們看到過這個問題,當時我們的項目是用不同於編譯庫的Java版本編譯的。 神奇的數字僅用於識別類文件,因此這不是問題。 問題是java版本(0034.0000 == Java 8)。

最簡單的方法是針對Java 6,這可能需要從代碼中刪除更新的語法。 在我們的例子中,項目和庫都是我們的,所以我們能夠添加以下內容來強制我們需要的Java版本:

Android庫

對於android庫,將此代碼添加到“android”擴展對象:

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    ...
}

Java庫

對於java庫,在“頂級”添加此代碼:

apply plugin: 'java'

version '1.8.1'
group   'com.yourcompany.package'

sourceCompatibility = JavaVersion.VERSION_1_6   //these two lines
targetCompatibility = JavaVersion.VERSION_1_6   //are the only ones that matter

注意:最后兩行是唯一重要的,我添加其他行只是為了顯示這些行所屬的位置,相對於gradle構建文件的其余部分。

對我們來說,這是由Android SDK構建工具版本引起的。 在v23.x上遇到問題,但不是v22.x. 你需要卸載v23 for cordova來選擇v22。

可能是一種症狀而不是一種原因,但這可能會使某些人處於相同的情況。

雖然您的問題似乎已得到修復,但最終我遇到了類似的錯誤(同時從developer.android.com構建示例)。 如果它對其他人有幫助,我可以通過將JAVA_HOME設置為適當的值來解決它。 在我的情況下它是:

export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64

添加:

sourceCompatibility = JavaVersion.VERSION_X_X
targetCompatibility = JavaVersion.VERSION_X_X

在Android項目gradle文件和Java庫gradle文件為我工作。

對不起,我會給它+1,但沒有足夠高的聲譽

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM