android - 错误:无法访问 zzbgl
问题描述
我正在开发一个应用程序,我收到以下错误:
error: cannot access zzbgl
class file for com.google.android.gms.internal.zzbgl not found
我知道 StackOverflow 中有一个问题,与我 4 天前发布的错误相同,但答案对我的情况没有帮助。(我说的是这个)
在我的项目中设置 Firebase Analytics 后,该错误就出现了。
我的build.gradle (Module: app)文件是这样的:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 26
buildToolsVersion '27.0.3'
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId 'com.geoactio.montferri'
minSdkVersion 14
targetSdkVersion 26
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support:appcompat-v7:26.1.0'
// compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.0'
implementation 'com.google.android.gms:play-services:12.0.1'
//implementation 'com.google.android.gms:play-services-maps:15.0.1'
//implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation "com.google.android.gms:play-services-base:15.0.1"
implementation 'com.navercorp.pulltorefresh:library:3.2.3@aar'
}
productFlavors {
}
lintOptions {
disable 'MissingTranslation'
}
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
}
}
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases' }
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
transitive = true;
}
}
apply plugin: 'com.google.gms.google-services'
我的build.gradle (Project: myPorojectName)文件是这样的:
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.google.gms:google-services:4.1.0'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
在新的 MarkerOptions()之后,点击错误将我带到这里:
mapView.addMarker(new MarkerOptions().position(new LatLng(puntomarker.getLatitud(), puntomarker.getLongitud()))
.zIndex(0.5f)
.anchor(0.5f, 0.5f)
.title(puntomarker.getId() + "")
.snippet(puntomarker.getNombre())
.icon(BitmapDescriptorFactory.fromBitmap(((BitmapDrawable) marker).getBitmap())));
(作为mapView一个GoogleMap实例)。
我希望有人能看到错误并解决这个问题,非常感谢你。如果您需要更多信息来解决此问题,请告诉我。
解决方案
Google API 发行说明表明对组合库的支持play-services
已于 2018 年 4 月结束:
从 15.0.0 开始,将不再有 play-services 别名目标来拉入所有 Google Play 服务组件。一段时间以来一直建议不要这样做。
您不能再像这样对组合的 Google Play 服务目标指定单个依赖项:
implementation 'com.google.android.gms:play-services:12.0.1'.
当以前的版本支持此功能时,它会以超出您需要的方式引入所有Google Play 库。请参阅设置指南表 1 中的 API 列表,其中仅包括您的应用使用的特定 API。
对Google Maven 存储库的检查确认版本 12.0.1 是组合播放服务目标的最后一个版本。
所以请删除上述实现并仅使用:
implementation "com.google.android.gms:play-services-base:15.0.1"
如果您还使用其他播放服务,请将它们添加为单独的依赖项。
推荐阅读
- gradle - 使用 Gradle 构建为 JVM 项目资源的 Kotlin JS
- python - I am trying to pivot a dataset with pandas
- php - 尝试在 laravel 视图中显示时解析错误
- jmeter - Jmeter XMPP消息信息
- javascript - Pug.js - 传入要从 JS 使用的 pug 文件
- python - 具有 where 条件的 Count_values 计算一列相对于另一列的值
- python - 给定数组的所有可能子数组的按位或总和
- php - PHP Exec Cron 作业返回意外的 EOF
- node.js - unable to update the array using pull in node.js
- sql-server - 在 SQLMode 中运行脚本更改变量