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

时间:2018-12-31 14:55:38

标签: java android target-sdk

由于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任务[: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

     

错误:(251,5)错误:带有配置''的资源'attr / font'的重复值。

     

错误:(251,5)错误:先前在此处定义的资源。

     

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

     

错误:(484)具有配置''的资源'attr / font'的重复值。

     

错误:先前在此处定义的(459)资源。

     

错误:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息

     

错误:任务':app:mergeDebugResources'的执行失败。

     

错误:java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception:AAPT2错误:检查日志以获取详细信息   信息:9s建立失败   信息:6个错误   信息:0警告   信息:在控制台中查看完整的输出

由于我无法回滚到targetSdkVersion25。请为我提供解决此问题的任何解决方案,并将targetSdkVersion升级到27。

3 个答案:

答案 0 :(得分:1)

可能重复到this question

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

答案 1 :(得分:1)

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真是一团糟。

答案 2 :(得分:0)

尝试添加:

        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终端)。