【发布时间】:2017-10-26 11:21:56
【问题描述】:
我在使用 Firebase 核心和消息 v11.4.2 的项目中遇到问题。
gradle 同步工作完美,但编译时出现此错误:
e:无法解析以下类的超类型。请确保您在类路径中具有所需的依赖项:
类 com.google.android.gms.internal.zzctr,未解析的超类型:com.google.android.gms.internal.zzee
FAILURE:构建失败并出现异常。
- 出了什么问题: 任务‘:app:compileDebugKotlin’执行失败。 编译错误。有关详细信息,请参阅日志
我已经尝试过 Kotlin 版本 1.1.51 和 1.2.0-beta-88; Gradle 插件 v2.3.3 和 3.0.0
欢迎任何帮助,非常感谢!
这是我配置项目的方式:
app build.gradle
// tried adding and removing the -kapt and -android-extensions. Didn't help.
apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
debug {
/// added this to be sure the class was not being left out
minifyEnabled false
shrinkResources false
useProguard false
}
...
dependencies {
// Firebase Core
implementation "com.google.firebase:firebase-core:${rootProject.ext.firebaseVersion}"
// Firebase Cloud Messaging
implementation "com.google.firebase:firebase-messaging:${rootProject.ext.firebaseVersion}"
}
...
// Keep this as the last line or the build will fail
apply plugin: 'com.google.gms.google-services'
* 项目 build.gradle *
buildscript {
// App
ext.compileSdkVersion = 26
ext.minSdkVersion = 18
ext.buildToolsVersion = '26.0.2'
ext.targetSdkVersion = 26
// Kotlin beta, stable version doesn't compile either
ext.kotlin_version = '1.2.0-beta-88'
// Android
ext.androidSupportVersion = '26.1.0'
//TODO: implement LifecycleOwner interface from Architecture Components.
ext.lifecycleVersion = '1.0.0-beta2'
// Architecture, RxJava, Injection
ext.daggerVersion = '2.11'
ext.butterKnifeVersion = '8.8.1'
ext.rxJavaVersion = '2.1.0'
ext.rxAndroidVersion = '2.0.1'
// Google/Firebase Cloud Message
ext.firebaseVersion = '11.4.2'
// Libraries shared between modules (TODO)
}
repositories {
maven { url 'https://maven.google.com' } // Google Maven Repository
maven { url 'http://dl.bintray.com/kotlin/kotlin-eap-1.2'} // Kotlin beta
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
//// tried this too: classpath 'com.google.firebase:firebase-plugins:1.1.1'
}
allprojects {
repositories {
jcenter()
mavenLocal()
maven { url 'http://dl.bintray.com/kotlin/kotlin-eap-1.2'}
maven { url "https://jitpack.io" }
maven { url 'https://maven.google.com' }
mavenCentral()
flatDir {
dirs 'libs'
}
}
【问题讨论】:
-
你能在 api "com.google.firebase:firebase-core:${rootProject.ext.firebaseVersion}" 等依赖项中尝试“api”代替“实现”
-
尝试了仅用于 firebase 的 api 的切换实现,但没有成功。然后尝试将所有内容切换到 api 并且它也未能构建。还有什么想法吗? @SangeetSuresh
-
您能否在 gradle-wrapper.properties 中确认使用了 distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
-
我确认这是正在使用的 gradle
-
@SangeetSuresh 感谢您的帮助,终于解决了问题。答案相当愚蠢,写在这里:
标签: android android-studio firebase android-gradle-plugin kotlin