我想添加融合的位置服务,但它告诉我一些错误。
帮助我。
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.example.adil.bloodbankapplication"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.8.0'
compile 'com.google.firebase:firebase-database:11.8.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'junit:junit:4.12'
compile 'com.android.support:design:26.1.0'
compile 'com.github.joielechong:countrycodepicker:2.1.5'
compile 'com.jaredrummler:material-spinner:1.2.4'
compile 'hanks.xyz:htextview-library:0.1.5'
compile 'com.firebaseui:firebase-ui-database:1.2.0'
compile 'com.google.android.gms:play-services:11.8.0'
}
apply plugin: 'com.google.gms.google-services'
你的方法太多了。
Android dex文件有65536个方法的限制。
对于初学者来说,如果你不需要谷歌播放服务API,只需要位置,请替换
compile 'com.google.android.gms:play-services:11.8.0'
with
compile 'com.google.android.gms:play-services-location:11.8.0'
你可以参考本页的方法来避免它,或者如果需要允许更多:
https://developer.android.com/studio/build/multidex.html
他的问题在这里,移除它
compile 'com.google.android.gms:play-services:11.8.0'
why?
注意:不要使用组合play-services目标。它带来了几十个库,使您的应用程序变得臃肿。相反,只指定应用程序使用的特定谷歌Play服务api。
使用你所需要的https://developers.google.com/android/guides/setup
比如位置服务
com.google.android.gms:play-services-location:11.8.0
对于云消息传递
com.google.android.gms:play-services-gcm:11.8.0
当你使用依赖时,你的方法增加了!
谷歌有一个解。叫做Multidex!
注意:确保最小SDK大于14。
在你的构建中。gradle:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
对于androidX使用:
def multidex_version = "2.0.1"
implementation 'androidx.multidex:multidex:$multidex_version'
欲了解更多信息,请访问原文链接:
https://developer.android.com/studio/build/multidex
使用multidex支持应该是最后的手段。默认情况下,gradle构建会为你的APK收集大量的可传递依赖项。正如谷歌开发者文档中建议的那样,首先尝试从项目中删除不必要的依赖项。
使用命令行导航到Android项目根目录。
您可以获得如下所示的编译依赖项树。
gradlew app:dependencies --configuration debugCompileClasspath
你可以得到完整的依赖树列表
gradlew app:dependencies
然后从应用build.gradle中删除不必要的或可传递的依赖项。作为一个例子,如果你的应用程序使用名为“com.google的依赖。你可以排除你不需要的库/模块。
implementation ('com.google.api-client:google-api-client-android:1.28.0'){
exclude group: 'org.apache.httpcomponents'
exclude group: 'com.google.guava'
exclude group: 'com.fasterxml.jackson.core'
}
然后在Android Studio中选择Build > Analyze APK…
选择发布/调试APK文件以查看内容。这将为您提供如下所示的方法和引用计数。