這個錯誤是在路徑中出現了重複依賴。android
解決辦法是配置打包選項, 在 android 節點下配置算法
packagingOptions { pickFirst 'lib/arm64-v8a/libgnustl_shared.so' pickFirst 'lib/armeabi-v7a/libgnustl_shared.so' }
能夠配置三個選項code
有三種模式可供選擇,對應上面的三個選項v8
第一選擇it
這個模式匹配到的路徑(或文件)將會被選中並打包進 APK。若是匹配到了多個相同的路徑(或文件)只會使用第一個。io
合併class
這個模式匹配到的路徑(或文件)會被合併打包進 APK。當合並兩個文件時,若是第一個文件結尾沒有換行,會追加一個換行符到末尾,而後是後面的文件,不論是什麼文件類型都是如此。打包
排除配置
這個模式匹配到的路徑(或文件)將不會被打包進 APK。file
這三種模式採用的算法以下:
第一選擇模式
若是第一選擇模式匹配到的路徑(或文件)沒有在 APK 中,那麼這個路徑(或文件)將會被打包進 APK 。
若是第一選擇模式匹配到的路徑(或文件)已經在 APK 中,那麼這個路徑(或文件)將不會被打包進 APK 。
合併模式
若是合併模式匹配到的路徑(或文件)沒有在 APK 中,那麼這個路徑(或文件)將會被打包進 APK 。
若是合併模式匹配到的路徑(或文件)已經在 APK 中,那麼將會合並路徑(或文件)到已經存在 APK 中的那個路徑(或文件)。
排除模式
排除模式匹配到的路徑(或文件)將不會被打包進 APK 中。
若是以上模式都沒有匹配到的路徑(或文件)而且這個路徑(或文件)沒有在 APK 中,那麼將會被打包進 APK 。 若是以上模式都沒有匹配到的路徑(或文件)而且這個路徑(或文件)已經在 APK 中,那麼將會構建失敗而且發出 重複路徑(或文件)的錯誤。