真机测试:
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true"
===============================
所有权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
===========================================
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
//===========================================
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url "https://jitpack.io"}
===========================================
//报错
org.gradle.jvmargs=-Xmx4096m
android.enableJetifier=true
org.gradle.parallel=true
org.gradel.daemon=true
org.gradel.configureondemand=true
===========================================
//plugins {
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'kotlin-kapt'
//apply plugin: 'com.google.dagger.hilt.android'
id 'com.google.dagger.hilt.android'
id 'kotlin-kapt'
===========================================
视图绑定
viewBinding {
enabled = true
}
dataBinding{
enabled = true
}
--------------------------------------------
buildFeatures {
viewBinding true
dataBinding true
}
dexOptions {
dexInProcess true
preDexLibraries true
javaMaxHeapSize "6g"
}
=============================================
sourceSets {
main {
if (isModuleApp) {
manifest.srcFile "src/main/app/AndroidManifest.xml"//app模式
} else {
manifest.srcFile "src/main/AndroidManifest.xml"//library模式
}
}
}
===========================================
id 'com.google.dagger.hilt.android' version "2.44" apply false
===========================================
//依赖
implementation 'com.github.bumptech.glide:glide:4.11.0'//Glide图片:
//Gson converter gson解析
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
//implementation 'com.google.code.gson:gson:2.8.2'//(2)Gson解析:
//Hilt
//implementation "com.google.dagger:hilt-android:2.44"
//kapt "com.google.dagger:hilt-compiler:2.44"
//viewModel
implementation"androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'//协程依赖
//page3
implementation 'androidx.paging:paging-runtime-ktx:3.0.0-beta03'
//Navigation
def nav_version = "2.5.3"
implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
implementation("androidx.navigation:navigation-ui-ktx:$nav_version")
// Activity中使用viewmodels
implementation "androidx.activity:activity-ktx:1.4.0"
// 在fragment中使用viewmodels
implementation "androidx.fragment:fragment-ktx:1.5.5"
//flow协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'
// TextBanner
implementation 'com.haowen:textbanner:1.0.4'
//渐变字体
implementation 'com.williamyang:gradienttext:1.0.1'
// banner依赖
implementation 'com.youth.banner:banner:1.4.10'
//implementation 'io.github.youth5201314:banner:2.2.2 '
//万能适配器
implementation 'com.android.support:recyclerview-v7:30.0.0'//recyclerview
implementation'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.0'//万能适配器
implementation 'com.github.wildma:PictureSelector:2.1.0' //相机图库
//选择器
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.0.1'
implementation 'com.github.gzu-liyujiang.AndroidPicker:AddressPicker:4.0.1'
//flycotablayout
implementation 'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar'
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'// log拦截器依赖
//RxJava依赖:主要用于消息传递
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
//Retrofit依赖
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
//RxJava2 Adapter
implementation "com.squareup.retrofit2:adapter-rxjava2:2.3.0"
//okhttp
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.1'
//通用的工具类
implementation 'com.blankj:utilcodex:1.30.6'
//MMKV存储工具
implementation 'com.tencent:mmkv:1.3.1'
//分包加载
//implementation 'com.android.support:multidex:1.0.3'
implementation 'com.shuyu:GSYVideoPlayer:7.1.2' //GSY视频播放
//环信
implementation 'io.hyphenate:hyphenate-chat:3.9.4'
implementation 'io.hyphenate:ease-im-kit:3.9.4'
//二维码
implementation 'cn.yipianfengye.android:zxing-library:2.2'
//GSY视频播放
implementation 'com.shuyu:GSYVideoPlayer:7.1.2'
//MultiDex
implementation "androidx.multidex:multidex:2.0.1"//依赖
implementation 'com.github.ctiao:DanmakuFlameMaster:0.9.25'//烈焰弹幕.
implementation 'io.agora.rtc:full-sdk:4.3.1'//声网
implementation 'org.greenrobot:eventbus:3.2.0'//eventbus
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.14'
//下拉刷新和加载更多
implementation 'io.github.scwang90:refresh-layout-kernel:2.0.5' //核心必须依赖
implementation 'io.github.scwang90:refresh-header-classics:2.0.5' //经典刷新头
implementation 'io.github.scwang90:refresh-footer-classics:2.0.5' //经典加载
-------------------------------------------------
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'// log拦截器依赖
implementation 'com.lzy.net:okgo:3.0.4'//okgo
implementation 'com.github.kaisengao:KsgLikeView:1.2.2'//点赞
//implementation ('com.alibaba:arouter-api:1.5.2') //ARouter依赖 //版本要改成最新版本
//annotationProcessor 'com.alibaba:arouter-compiler:1.5.2' //ARouter依赖
//arouter
implementation ('com.alibaba:arouter-api:1.5.2')
kapt 'com.alibaba:arouter-compiler:1.5.2'
//Room数据库
def room_version = "2.5.0"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version" //kapt 这种依赖的都是一个注解
implementation "androidx.room:room-rxjava2:$room_version"
//flycotablayout
'com.flyco.tablayout:FlycoTabLayout_Lib:2.0.2@aar'
//腾讯云
implementation'com.tencent.liteav:LiteAVSDK_Professional:latest.release'
//滚轮依赖
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.0.1'
implementation 'com.github.gzu-liyujiang.AndroidPicker:AddressPicker:4.0.1'
//ARouter依赖
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
//选择器
implementation 'com.github.gzu-liyujiang.AndroidPicker:WheelPicker:4.0.1'
implementation 'com.github.gzu-liyujiang.AndroidPicker:AddressPicker:4.0.1'
===========================================
//AROUTER
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
-----------------------------------------------------------
ARouter.openDebug();
ARouter.openLog();
ARouter.init(this);//注意!!!init放在后面
==============================
//环信
//appkey
1149231208160391#app