将 targetSdkVersion 从版本 25 升级到 27 时如何修复错误?

How to fix an error while upgrading the targetSdkVersion from version 25 to 27?

由于 Play 商店不允许我上传 targetSdkVersion 为 25 的 apk。所以,我升级了我的 targetSdkVersion 从 25 到 27,并通过添加依赖项下载了所有必需的库。

我在整个 build.gradle 文件代码下方提供了我所做的更改-

    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'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '26.0.2'
    defaultConfig {
        applicationId "com.myApp"
        minSdkVersion 17
        targetSdkVersion 27
        versionCode 2
        versionName "1.1"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        javaMaxHeapSize "2g"
    }

    repositories {
        mavenCentral()
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')




implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support:recyclerview-v7:27.1.0'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.jakewharton:butterknife:8.4.0'
implementation 'de.hdodenhof:circleimageview:2.1.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.makeramen:roundedimageview:2.2.1'
implementation 'com.github.whinc:ratingbar:1.1.1'
implementation 'com.iarcuschin:simpleratingbar:0.1.3'

implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.google.code.gson:gson:2.8.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'in.srain.cube:grid-view-with-header-footer:1.0.12'
implementation 'com.squareup.retrofit2:converter-scalars:2.1.0'
implementation 'pl.bclogic:pulsator4droid:1.0.3'
implementation 'com.intuit.sdp:sdp-android:1.0.4'
implementation 'com.mcxiaoke.volley:library:1.0.19'
implementation 'com.uncopt:android.justified:1.0'
implementation 'com.android.support:multidex:1.0.1'

implementation 'com.github.chrisbanes.photoview:library:1.2.4'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.github.bluejamesbond:textjustify-android:2.1.6'
androidTestImplementation 'junit:junit:4.12'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'


}

但是在同步后我收到以下错误-

Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar] C:\Users\admin.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.0.aar\ad0857f7c335bc06a588407b354d6c8b\res\values\values.xml

Error:(251, 5) error: duplicate value for resource 'attr/font' with config ''.

Error:(251, 5) error: resource previously defined here.

K:\my-app\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml

Error:(484) duplicate value for resource 'attr/font' with config ''.

Error:(459) resource previously defined here.

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

Error:Execution failed for task ':app:mergeDebugResources'.

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details Information:BUILD FAILED in 9s Information:6 errors Information:0 warnings Information:See complete output in console

因为我无法回滚到 targetSdkVersion 25.Please 建议我解决此问题的任何解决方案并将 targetSdkVersion 升级到 27.

可能与 this question

重复

TLDR 尝试将库属性重命名为其他名称 (textFont) ¯\_(ツ)_/¯

尝试添加:

        classpath 'com.android.tools.build:gradle:3.2.1'

到依赖项部分的项目级别 build.gradle(也许您需要在 gradle-wrapper-properties 中将 gradle 升级到 4.6):

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

并在应用级别 build.gradle 中将 buildToolsVersion 增加到“28.0.3”。 然后清理项目或在项目目录的终端中执行“./gradlew clean”(可能使用 android studio 终端)。

a) 您需要使用正确的构建工具,版本为 27.0.3。虽然我只是想知道为什么你更新到 API 27 而不是当前的 API 28;这将使用构建工具版本 28.0.3.

b) 并且您必须修复这些无效资源;一个重复的 attr/fontcom.android.support:appcompat-v7:27.1.0 冲突。这来自项目 XML 中出现的任何 <attr name="font" format="string"/>,必须将其删除或重命名。

c) 将 buildscript(很可能是两次)添加到模块级 build.gradle 中是无意义的。 apply plugin: 'com.android.application'也存在两次;这 build.gradle 一团糟。