我想添加融合的位置服务,但它告诉我一些错误。
帮助我。
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'
在Gradle构建文件中添加依赖项:
implementation 'com.android.support:multidex:1.0.2'
or
implementation 'com.android.support:multidex:1.0.3'
or
implementation 'com.android.support:multidex:2.0.0'
然后在“defaultConfig”部分,添加:
multiDexEnabled true
在targetSdkVersion
minSdkVersion 17
targetSdkVersion 27
multiDexEnabled true
如果你遇到这个错误
错误:Failed to resolve: multidex-instrumentation Open File
您需要将gradle更改为3.0.1
classpath 'com.android.tools.build:gradle:3.0.1'
并将以下代码放入gradle-wrapper.properties文件中
- 4.1 - all.zip distributionUrl = https://services.gradle.org/distributions/gradle
最后
在项目中添加类application并将其引入到AndroidManifest中
哪个是从MultiDexApplication扩展过来的
public class App extends MultiDexApplication {
@Override
public void onCreate( ) {
super.onCreate( );
}
}
首先运行项目以创建错误,然后清除项目
最后,重新启动项目并享受它
我知道我的答案晚了,但是,我确信这个问题主要是由一个依赖项引起的,“com.google.android.gms:play-services”。请阅读完整的答案,以便更好地理解问题和解决方案。
在我的情况下,我使用的是'com.google.android.gms:play-services-location:21.0.1',这是它的最新版本,当我写这个答案的时候。它有太多的方法计数。
我使用它的唯一动机是从用户的设备中获取位置。谷歌建议只使用play-services-location来获取位置,所以我不想替换这个依赖来完成我的工作。
经过无数次谷歌搜索,我发现,
您可以降低版本
之前的稳定版本,来完成你的工作。对于我来说,最适合我的版本是17.1.0。所以我建议你只使用这个特定的版本,如果你的用例使用play-services-location完全像我的。
做这些改变
implementation 'com.google.android.gms:play-services-location:21.0.1'
to
implementation 'com.google.android.gms:play-services-location:17.1.0'
尽管如此,在你的代码中总是有启用多索引的选项,但是,在我看来,这是解决这个问题最低效的方法。
如果你能找到导致dex文件大小变大的根本原因
method count,那么我想你应该调整或替换它
依赖。
我不知道为什么,也许是因为我在Kotlin开发,但要修复这个错误
我最后必须创建一个扩展MultiDexApplication的类,就像这样:
class MyApplication : MultiDexApplication() {
}
然后在manifest。xml中进行设置
<application
...
android:name=".MyApplication">
为了不让任何人感到困惑,我也这样做:
multiDexEnabled true
implementation 'com.android.support:multidex:1.0.3'
对于androidx,这也适用于我:
implementation 'androidx.multidex:multidex:2.0.0'
...
<应用android: name = " android.support.multidex.MultiDexApplication " >
对我没用吗
我用这种方法解决了我同样的问题,你需要遵循2个简单的步骤。我是AndroidX用户,所以对我来说,首先我在构建中实现了这个依赖。Gradle文件在我的项目中的依赖项部分。
实现“androidx.multidex: multidex: 2.0.1”
dependencies {
//for multidex
implementation 'androidx.multidex:multidex:2.0.1'
}
在构建中添加此依赖项后。Gradle文件,然后再次同步您的项目
现在添加到“defaultConfig”部分:
multiDexEnabled真实
defaultConfig {
applicationId "com.papel.helper"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
现在重新构建你的项目并运行:)