gpt4 book ai didi

android - 添加Google Play Services 9.0.0后Dex文件超过64k

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:59 25 4
gpt4 key购买 nike

我按照 Firebase 指南添加 FCM,因此我将以下依赖项添加到我的应用程序 gradle:

compile 'com.google.android.gms:play-services:9.0.0'
apply plugin: 'com.google.gms.google-services'

这是我的项目 gradle:

classpath 'com.google.gms:google-services:3.0.0'

在此之后,我从 Firebase 控制台设置中添加了 google-services.json,方法是下载它并将其添加到我的应用程序目录中。

现在我收到这个错误:

错误:.dex 文件中方法引用的数量不能超过 64K。在 https://developer.android.com/tools/building/multidex.html 了解如何解决此问题

如果我按照说明让我的应用程序支持 multidex,我的应用程序会在启动后立即崩溃。

这是将 multidex 添加到我的应用程序后的错误:

    05-20 01:25:32.253 19812-19812/com.cryogenos.pearsonvisionlimousine W/dalvikvm: VFY: unable to resolve static field 8723 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;05-20 01:25:32.253 19812-19812/com.cryogenos.pearsonvisionlimousine W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x416b5e30)05-20 01:25:32.253 19812-19812/com.cryogenos.pearsonvisionlimousine E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.cryogenos.pearsonvisionlimousine, PID: 19812java.lang.NoClassDefFoundError: com.google.android.gms.R$stringat com.google.android.gms.common.internal.zzah.<init>
(Unknown Source)
at com.google.firebase.FirebaseOptions.fromResource(Unknown Source)
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1609)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1574)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5643)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5206)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5143)
at android.app.ActivityThread.access$1500(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1418)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5883)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:688)
at dalvik.system.NativeStart.main(Native Method)

我手机的 google play 服务是 9.0.0+。我已更新到最新的播放服务和 SDK 管理器中的存储库。

编辑:

我的应用程序 build.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "com.cryogenos.pearsonvisionlimousine"
minSdkVersion 19
targetSdkVersion 23
versionCode 3
versionName "2.1"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:multidex:1.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
}

应用插件:'com.google.gms.google-services'

最佳答案

避免 64k Dex 错误 的一种可能方法是仅包含您的应用需要来自 Google Play 服务的那些 API。

Selectively compiling APIs into your executable

From version 6.5, you can instead selectively compile Google Play service APIs into your app. For example, to include only the Google Fit and Android Wear APIs, replace the following line in your build.gradle file:

compile 'com.google.android.gms:play-services:9.0.0'

with these lines:

compile 'com.google.android.gms:play-services-fitness:9.0.0'
compile 'com.google.android.gms:play-services-wearable:9.0.0'

已更新好吧,我读了文档,上面写着

Apps that rely on the Play Services SDK should always check the device for a compatible Google Play services APK before accessing Google Play services features

因此您只需要检查 Google Play 服务是否可用。为此,您只需要 Google Actions、Base Client Library API

编译 'com.google.android.gms:play-services-base:9.0.0'

关于android - 添加Google Play Services 9.0.0后Dex文件超过64k,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37338398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com