2017-09-27 77 views
0

我有一個包含多個實用程序類的自定義庫。我在min SDK 21的單個項目中使用了它。在具有不同SDK分鐘版本的項目中使用相同的自定義庫

現在,我想重用在其他項目中,其中有min SDK 14類之一。的類別代碼被罰款14版本,但搖籃不喜歡圖書館的分SDK爲21

什麼是推薦的方法,以這樣那樣的問題?我想重複使用該代碼,而不是複製它。

+0

。你能夠獲得源代碼,該庫?我的意思是來自Github的庫模塊。 –

+0

@HareshChhelana你認爲源代碼與這個問題有關嗎?爲什麼? – ilomambo

+0

如果你有代碼,那麼保留你所需要的類而不是整個庫。 –

回答

1

可以使用,Manifest Merger重寫<uses-sdk>進口庫。

從官方文檔:

默認情況下,用的minSdkVersion值,它比主清單文件更高 導入庫時,出現錯誤和庫 無法導入。要使合併工具忽略此衝突並在保留應用的較低minSdkVersion值的情況下導入庫, 將overrideLibrary屬性添加到標記。屬性 值可以是一個或多個庫包名(逗號分隔), 表示能夠覆蓋主清單的 的minSdkVersion的庫。

例如,如果你的應用程序的主清單適用overrideLibrary這樣的:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example.app" 
      xmlns:tools="http://schemas.android.com/tools"> 
    <uses-sdk android:targetSdkVersion="22" android:minSdkVersion="2" 
      tools:overrideLibrary="com.example.lib1, com.example.lib2"/> 
... 

然後將下面的清單可以在沒有關於<uses-sdk>標籤錯誤進行合併,合併後的表現保持minSdkVersion="2"從應用程序清單。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example.lib1"> 
    <uses-sdk android:minSdkVersion="4" /> 
... 
相關問題