安卓 匯入舊專案作為新專案依賴 的經驗彙總

2021-10-13 10:24:42 字數 1929 閱讀 9367

android studio的匯入過程詳見

依賴專案的androidmanifest.xml裡的預設啟動activity,也就是

"android.intent.action.main"

/>

"android.intent.category.launcher"

/>

<

/intent-filter>

部分最好注釋掉,不然可能出現兩個圖示

據說comilesdkversion、buildtoolsversion、minsdkverion、targetsdkversion這些版本號兩個build.gradle檔案最好設定成一樣的,我的兩個專案都一致就不存在這個問題了

當然在主專案的build.gradle的dependencies裡

implementation project(":[依賴專案名稱]")

一下不要忘了

出現報錯:

「circular dependency between…」

可能是兩個module之間相互依賴了,也可能是粗心讓module自己依賴自己了

大致原因好像是

switch裡的case值必須是常數,而在library module的r檔案裡id的值不是final型別的,但是主module的r檔案裡的id值是final型別的,所以主module裡可以用資源id作為case值而library module卻不能。

詳見今天學習了模組化開發進行統一管理的方式(主要是使用gradle.properties檔案),在這裡做一下總結

gradle.properties檔案裡定義 minsdkversion, targetsdkversion,versioncode

versionname,compilesdkversion, buildtoolsversion 等引數的對應變數 例如

#最小sdk版本

min_sdk_version=

15#目標裝置sdk版本

target_sdk_version=

26#sdk編譯版本

compile_sdk_version=29#

build_tools_version=29.0.3

#所有模組版本號

version_code=

100#所有模組版本名字

version_name=

1.0

在各個module裡的build.gradle檔案裡,讓這幾個引數賦值gradle.properties檔案裡的這幾個對應變數,注意非string型的要進行型別轉換 例如

android 

minsdkversion min_sdk_version.

tointeger()

targetsdkversion target_sdk_version.

tointeger()

versioncode version_code.

tointeger()

versionname version_name

...}}

例如

if

toboolean()

)

例如

if

toboolean()

)else

例如

if

(toboolean()

)

例如

sourcesets 

else

}}

樓主現在也開始有意讓自己習慣這種 用gradle.properties來集中控制module的專案構建方式,無論是單module還是多module的專案,開始可能有些繁瑣,但終究會遇到凸顯其意義的情景吧

檢視安卓專案gradle庫依賴,解決依賴庫衝突問題

執行命令 gradlew 模組名 dependencies.gradlew 模組名 dependencies dep.log下面這張圖是我乙個工程裡執行結果的篩選部分.背景 工程編譯報錯 program type already present androidx.versionedparcelabl...

安卓專案實現閃屏的功能

方法1 在主檔案中寫入 取消標題 this.requestwindowfeature window.feature no title 取消狀態列 this.getwindow setflags windowmanager.layoutparams.flag fullscreen,windowmana...

安卓專案中WebSocket長連線的簡單實現

專案中最近要用到websocket這個技術,之前專案中沒有用到過,來梳理下 首先websocket是要與伺服器進行長連線的,也就是不間斷通訊,至於怎麼通訊怎麼底層是怎麼等我研究明白了再來寫,現在就先進行乙個簡單的連線。提取碼 yp3j 新增完依賴就可以直接擼了 final string wsuri ...