簡體   English   中英

導入mongoDB jar驅動程序時出現Gradle錯誤

[英]Gradle error when importing mongoDB jar driver

在Android Studio中導入 mongoDB jar驅動程序時,gradle存在問題。 我收到此錯誤:

錯誤:任務':app:dexDebug'的執行失敗。 com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:進程'命令'C:\\ Program Files \\ Java \\ jdk1.8.0_25 \\ bin \\ java.exe''以非完成零退出值2

當我導入mongo-java-driver-2.13.0-rc0.jar驅動程序時,我對此沒有任何問題。 我不知道這是否相關,但是首先我導入了該驅動程序,然后其他任何mongoDB驅動程序都出現了此錯誤,但我首先添加了這個錯誤。 這是我的gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'

    repositories {
        mavenCentral()
        jcenter()

    }

    defaultConfig {
        applicationId "com.example.irakl_000.maps"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.android.support:percent:23.1.0'
    compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.isseiaoki:simplecropview:1.0.13'
    compile files('libs/mongo-java-driver-3.2.0-SNAPSHOT.jar')

對於stackoverflow中類似問題的任何解答都無濟於事,因此,非常感謝任何幫助!

編輯:我創建了一個新項目,沒有錯誤,所以很顯然該項目有問題,而不是grandle文件或jar

編輯:當我運行gradle compileDebug --stacktrace我得到以下內容

* Exception is:             
org.gradle.execution.TaskSelectionException: Task 'compileDebug' is ambiguous in root project 'Maps'. Candidates are: 'compileDebugAidl', 'compileDebugAndroidTestAidl', 'compileDebu
gAndroidTestJavaWithJavac', 'compileDebugAndroidTestNdk', 'compileDebugAndroidTestRenderscript', 'compileDebugAndroidTestSources', 'compileDebugJavaWithJavac', 'compileDebugNdk', 'c
ompileDebugRenderscript', 'compileDebugSources', 'compileDebugUnitTestJavaWithJavac', 'compileDebugUnitTestSources'.
        at ...

看起來您在這兩個依賴項之間兩次依賴單個jar:

compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/mongo-java-driver-3.2.0-SNAPSHOT.jar')

第一行是聲明對libs目錄中所有內容的依賴。 然后,第二行在libs文件夾中的特定jar上添加另一個依賴關系,該依賴已在第一行中進行了介紹。 您實際上是在告訴gradle兩次使用該jar,這可能會導致問題。 您可能還會從gradle中獲得一條消息,以使用不同的命令行標志再次運行該構建以查看更詳細的錯誤,因此也是如此。

考慮刪除其中一個。 如果libs文件夾中還有其他jar,則可能需要刪除第二行。

您可能對android studio項目中允許的65k方法的限制有疑問。 Google宣布了針對此問題的解決方案。 您可以在此處找到更多信息。 我遇到了類似的問題,這對我來說是解決方案,因此您可以嘗試一下。

更新我應該提到,這可能會嚴重減少gradle的構建時間,因此只有在沒有其他方法的情況下才應使用它。 最好的想法是將使用的庫減少到所需的庫。

您也可以參考答案,將您的google-play-service減少到實際需要的服務。

暫無
暫無

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

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