1、声明:
1.1 依赖的版本适配问题
版本按照系统提示,自动修改;
build报错 "Cause ......"会提示该用哪个依赖库改用什么样的版本
1.2 语法问题
依赖文件的语法一般 用 Kotlin Groovy
区分 Kotlin语法的Gradle文件会后缀加.kts
下图是Kotlin和Groovy分别的区别
1.2.1 plugins内部
Groovy用单引号‘ ’ ;Kotlin用 (“ ”)
1.2.2 dependencies内部
Groovy既可以用单引号 ‘ ’,双引号“ ”,也可以用随时在引号外加() ; Kotlin只能用(“ ”)
1.2.3 其他内部
Groovy属性赋值可以无 “=”符号 ; Kotlin 属性赋值都要有“=”符号
1.2.4 关于导入依赖
implementation 的依赖只存在本模块; api 导入 -》当此模块整体,被其他模块导入时,可以一并继承原模块已导入的依赖库
2、依赖库大全(每天更新中)
2.1 viewBinding与dataBinding
位置如下:
2.2 Navigation
Groovy语法举例
在dependencies中添加
implementation'androidx.navigation:navigation-fragment-ktx:2.6.0'
implementation'androidx.navigation:navigation-ui-ktx:2.6.0'
在(Module:app)的plugins中添加
id 'androidx.navigation.safeargs.kotlin'
在(Project)的plugins中添加
id 'androidx.navigation.safeargs' version '2.6.0' apply false
2.3 Fragment的切换
implementation"androidx.fragment:fragment-ktx:1.6.0
2.4 Gson转换类
implementation'com.google.code.gson:gson:2.10.1'
2.5 ViewModel数据共享类
implementation"androidx.fragment:fragment-ktx:1.6.0"
implementation'androidx.activity:activity-ktx:1.7.2'
2.6 Coroutine线程协程切换
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4")
implementation('androidx.lifecycle:lifecycle-runtime-ktx:2.6.1')
implementation('androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1')
2.7 EventBus
implementation("org.greenrobot:eventbus:3.3.1")
2.8 Room
在(Module:app)的plugins中添加
id 'kotlin-kapt'
在dependencies添加
implementation'androidx.room:room-runtime:2.5.2'
implementation'androidx.room:room-ktx:2.5.2'
annotationProcessor("androidx.room:room-compiler:2.5.2")
kapt("androidx.room:room-compiler:2.5.2")
2.9 lottie动画库
在dependencies添加
implementation 'com.airbnb.android:lottie:6.1.0'
2.10 Bmob后端云
在(Module:app)在dependencies中添加
implementation 'io.github.bmob:android-sdk:3.9.4'
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
implementation 'com.squareup.okio:okio:2.2.2'
implementation 'com.google.code.gson:gson:2.8.5'
在app模块的Manifest文件一开始就添加
<!--允许联网 -->
<uses-permission android:name="android.permission.INTERNET" />
<!--获取GSM(2g)、WCDMA(联通3g)等网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--获取wifi网络状态的信息 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--获取sd卡写的权限,用于文件上传和下载-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许读取手机状态 用于创建BmobInstallation-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
在<activity></activity>外,<application> ....</application>中添加Provider的信息
<!--添加ContentProvider信息 -->
<provider
android:name="cn.bmob.v3.util.BmobContentProvider"
android:authorities="你的应用包名.BmobContentProvider">
</provider>