在Android應用程序中,我需要爲特定的外設使用特定的SDK。根據構建類型的不同庫/進口
一切工作正常使用單個構建變量:
provided fileTree(include: ['peripheral.jar'], dir: 'libs')
compile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
的問題是,該SDK依賴於安裝在實際周邊的共享庫。如果我嘗試在其他Android設備上安裝應用程序(用於其他功能的調試),則會出現INSTALL_FAILED_MISSING_SHARED_LIBRARY
錯誤。
我想我可以用兩個構建變量:
release
,使用該SDKdebug
,不使用SDK
我試過,包括SDK只在release
構建類型:
releaseProvided fileTree(include: ['peripheral.jar'], dir: 'libs')
releaseCompile fileTree(exclude: ['peripheral.jar'], dir: 'libs')
但是,然後,我無法編譯項目,因爲缺少導入。
所以我重複使用這些進口的唯一一類:
在main/java/package/PeripheralManager.java
:
public class ScannerManager {
// fake
}
在release/java/package/PeripheralManager.java
:
import peripheral; <- IT FAILS WHEN COMPILING
public class ScannerManager {
// real code
}
沒有重要的我選擇,我可以生成類型如果導入未在其中一個變體中解決,則不編譯項目...
你可以嘗試multidex以避免重複。 –
我從來沒有使用過。你認爲這不能使用構建類型來解決嗎? – thelawnmowerman
希望它會有所幫助,我可以在這裏分享答案嗎? –