2017-08-25 63 views
0

我試圖將Paho MQTT服務(和客戶端)添加到我的Android應用程序,但運行我的應用程序時遇到了com.android.builder.packaging.DuplicateFileException運行時異常。將模塊添加到我的Android應用程序時獲取DuplicateFileException

出現對我來說,一切安裝正確,當我清理/構建,我沒有得到任何錯誤。

應用的build.gradle文件看起來像:

dependencies { 
    compile fileTree(dir: '../org.eclipse.paho.android/service/libs', excludes: ["org.eclipse.paho.client.mqttv3-1.1.0.jar"], include: '') 
    compile fileTree(include: ['*.jar'], dir: 'libs', excludes: ["*org.eclipse.paho.client.mqttv3-1.1.0.jar"]) 
    compile (project(':org.eclipse.paho.android.service')){ 
     // exclude module: "org.eclipse.paho.client.mqttv3" 
     transitive=true 
    } 

    // Uncommenting the below (when commenting out the above) WORKS. 
    // However, I need to be able to alter the source, to I do need to be able 
    // to import the Paho MQTT service as a module to my app. 
    // compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0' 
    // compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1' 

    ... 

然而,當我跑,我收到一個DuplicateFileException例外:

* What went wrong: 
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. 
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK org/eclipse/paho/client/mqttv3/internal/nls/messages_zh_TW.properties 
    File1: /Users/me/.gradle/caches/modules-2/files-2.1/org.eclipse.paho/org.eclipse.paho.client.mqttv3/1.1.0/89d827ffa47c241f2627421ef1d6c7a8c207a341/org.eclipse.paho.client.mqttv3-1.1.0.jar 
    File2: /Users/me/myapp/code/myapp-android/org.eclipse.paho.android.service/build/intermediates/bundles/default/classes.jar 

我的文件層次結構是這樣的:

enter image description here

這看起來對我來說還不錯。

有沒有人有任何關於如何解決這個問題的指針?該錯誤聲稱org.eclipse.paho.client.mqttv3-1.1.0.jarclasses.jar衝突,但我的gradle文件明確排除編譯org.eclipse.paho.client.mqttv3-1.1.0.jar(或者我認爲它確實)。

我在這裏不知所措;任何指針都歡迎。

回答

2

發生這種情況是因爲您的兩個依賴項正在使用Eclipse Paho MQTT庫。

以下應該可以解決這個問題

添加以下到您的應用水平gradle這個文件

packagingOptions { 
    exclude 'META-INF/ECLIPSE_.SF' 
    exclude 'META-INF/ECLIPSE_.RSA' 
} 

compile("one-of-your-dependency:1.0.0"){ 
    exclude group: 'org.eclipse.paho' 
} 
相關問題