当我使用Firestore版本11.8.0时,我的应用程序运行正常,但始终有关于Firestore版本的警告,它要求我升级最新版本17.1.0
升级版本后,应用程序显示错误,并且android studio不断告诉我
//Cannot fit requested classes in a single dex file. Try supplying a main-dexlist.
我不知道为什么Firebase存储版本与Multidex有关?
这是我的构建gradle。
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.moham.trial"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-auth:16.0.3'
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-firestore:17.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:recyclerview-v7:28.0.0-rc02'
implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
implementation 'com.android.support:design:28.0.0-rc01'
implementation 'com.google.firebase:firebase-core:16.0.3'
implementation 'com.jakewharton:butterknife:8.8.1'
implementation 'com.android.support:cardview-v7:28.0.0-rc02'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
}
apply plugin: 'com.google.gms.google-services'
答案 0 :(得分:0)
构建一个Android应用程序会将应用程序编译为DEX文件形式的字节码(可执行代码)。编译后的字节码文件(DEX文件)仅支持64K(65,536)方法,而不必拆分为DEX文件。
添加firestore库会增加很多方法,并导致超出此限制,因此需要multiDexEnabled true才能将其拆分为多个文件。
您可以在以下网址找到更多信息:https://developer.android.com/studio/build/multidex