iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0

Day 2 有留下一個問題:
build.gradle(Module :sinch-android-rtc-3.9.14) 這個檔案是什麼?

我們來重新看一下 gradle 在一個專案的結構

└── MyApp/  # Project
    ├── gradle/
    │   └── wrapper/
    │       └── gradle-wrapper.properties
    ├── build.gradle(.kts)
    ├── settings.gradle(.kts)
    └── app/  # Module
        ├── build.gradle(.kts)
        └── build/
            ├── libs/
            └── src/
                └── main/  # Source set
                    ├── java/
                    │   └── com.example.myapp
                    ├── res/
                    │   ├── drawable/
                    │   ├── values/
                    │   └── ...
                    └── AndroidManifest.xml

(資料來源:Google for Developers 文件)

在最常見的情況下,build.gradle 有兩個

  1. 專案層級的 build.gradle,即 build.gradle(Project:專案名稱)
  2. App 層級的 build.gradle,即 build.gradle(Module :app)

而 build.gradle(Module :sinch-android-rtc-3.9.14) 檔案裡面只有這 2 行

configurations.maybeCreate("default")
artifacts.add("default", file('sinch-android-rtc-3.9.14.aar'))

sinch-android-rtc 這個 SDK 可以讓你在產品增加音訊及視訊電話功能。

依照該 SDK 的文件說明,會用下列方式來引入到你的 app

repositories {
    flatDir {
        dirs 'libs'
        }
    }

dependencies {
    implementation(name:'sinch-android-rtc', version:'+', ext:'aar')
    ///
    }

接著使用關鍵字搜尋,來查看 Sinch 這款通話 SDK 有沒有實際應用在我們專案。
發現相關的實作都被註解掉了。

為了避免之後在 complier SDK version 升級過程中可能產生的衝突,
所以我把相關的 gradle 檔案做對應的刪除修改。

  • 刪除 build.gradle(Module :sinch-android-rtc-3.9.14)
  • 從 setting.gradle 內刪除 ':sinch-android-rtc-3.9.14'

即在 setting.gradle 這個檔案裡

include ':app', ':sinch-android-rtc-3.9.14'

小結

  • 一個專案使用的套件,隨著時間往前推移不必然都有留存在依賴項的必要。趁這次處理 API 級別升級的機會,一起檢視有哪些套件是實際需要的吧。

上一篇
[Day 3] Gradle 的作用:解決 App 構建過程中的隔閡
下一篇
[Day 5] 決定裝置相容性的 compileSdk、targetSdk 和 minSdk
系列文
[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言