我们在API Level 14上创建了一个Android应用程序。现在我们决定为我们的应用程序实现推送通知。由于不再支持GCM,除了使用FCM之外,我们别无选择。根据Android文档,针对FCM的Min SDK是14,这就是我们所拥有的。但我们不知道什么是正确的类路径和编译FCM的依赖关系。目前我们使用以下内容:
**App Level Gradle**
apply plugin: 'com.android.application'
android {
compileSdkVersion 14
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.infotropy.fcm"
minSdkVersion 14
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')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.google.android.gms:play-services:9.2.1'
compile 'com.google.firebase:firebase-messaging:9.2.1'
}
apply plugin: 'com.google.gms.google-services'
**Project Level Gradle**
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在构建时,我们遇到了以下构建错误:
Error:Gradle: Execution failed for task ':app:processDebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt
E:\Projects\Android\Fcm\app\build\intermediates\res\merged\debug\values-v21\values-v21.xml
Error:(12, -1) Gradle: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
Error:(14, -1) Gradle: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large.Inverse'.
还有更多像这样的错误......
我们是否可以通过更改依赖项来解决这些问题,如果是,那么请提及正确的依赖项。
请注意,我们首选的是我们不想更改项目的SDK版本,因为它是一个非常大的项目并且更改SDK版本将导致大量代码更改和麻烦。< /强>
答案 0 :(得分:0)
因为您正在使用:
compileSdkVersion 14
您无法使用compileSdkVersion 23
,您必须使用compileSdkVersion 27
但是你应该使用:
compile 'com.google.android.gms:play-services:11.6.2'
compile 'com.google.firebase:firebase-messaging:11.6.2'
和最新的稳定版本:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1' // google-services plugin
}
}
allprojects {
// ...
repositories {
// ...
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
最后:
{{1}}