5

我正在移植我当前的 android apk 以满足最近的 playstore 指令 - “targetSdkVersion 26”

这是我的 gradle 文件。我从 compileSdkVersion 26 开始,到 28 结束。所以对于 28,我不得不使用 AndroidX 依赖项。我卡在主题行中发布的错误上。任何帮助将不胜感激。

错误信息是

AGPBI: {"kind":"error","text":"error: duplicate value for resource \u0027attr/actionBarSize\u0027 with config \u0027\u0027.","sources":[{"file":"/Users/sk/.gradle/caches/transforms-1/files-1.1/appcompat-1.0.0.aar/34c8fa33903fb2b3203e5c70952da588/res/values/values.xml","position":{"startLine":1303,"startColumn":4,"startOffset":70911,"endColumn":68,"endOffset":70975}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource previously defined here.","sources":[{"file":"/Users/sk/.gradle/caches/transforms-1/files-1.1/appcompat-1.0.0.aar/34c8fa33903fb2b3203e5c70952da588/res/values/values.xml","position":{"startLine":1303,"startColumn":4,"startOffset":70911,"endColumn":68,"endOffset":70975}}],"original":"","tool":"AAPT"}
:app:mergeDebugResources

    apply plugin: 'com.android.application'

    android {

    compileSdkVersion 28
    buildToolsVersion "28.0.3"


    defaultConfig {
        applicationId "pack.age.net"
        minSdkVersion 16

        //Since no updates to app can be published in Playstore beginning Nov 1, 2018  - bumping targetSdk to 26 from 19
        targetSdkVersion 26

        //Double check this before you move this to production
        versionCode 22
        versionName "3.3"

        // Enabling multidex support.
        multiDexEnabled true

        //Language resources
        resConfigs "en", "hi"



    }

    buildTypes {
        release {

            //Shrink your code
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
            debuggable true
        }
    }

    lintOptions {
        checkReleaseBuilds false
    }

    packagingOptions {

        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    repositories {
        mavenCentral()

        maven {
            url "http://dl.bintray.com/journeyapps/maven"
        }
    }



    useLibrary 'org.apache.http.legacy'
}

dependencies {
    //implementation 'com.android.support:support-v4:28.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'

//    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0'

//    implementation 'com.android.support:design:28.0.0'
    implementation 'com.google.android.material:material:1.0.0'

    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    //Hockey App for Crash Analytics
    implementation 'net.hockeyapp.android:HockeySDK:5.1.1'
    //Sundry library files
    implementation files('libs/commons-codec-1.9.jar')
    implementation files('libs/ksoap2-android-assembly-3.6.0-jar-with-dependencies.jar')
    implementation files('libs/libphonenumber-6.2.jar')
    //Mutlidex Support
    implementation 'com.android.support:multidex:1.0.0'
    //Square Picasso Image View
    implementation 'com.squareup.picasso:picasso:2.5.2'
    //Calligraphy for custom fonts
    implementation 'uk.co.chrisjenx:calligraphy:2.2.0'
    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    testImplementation 'junit:junit:4.12'
    //Apache Commons
    implementation 'org.apache.commons:commons-lang3:3.7'

    implementation 'com.github.chrisbanes:PhotoView:2.2.0'
    // Supports Android 4.0.3 and later (API level 15)
    implementation 'com.journeyapps:zxing-android-embedded:2.0.1@aar'
    // Supports Android 2.1 and later (API level 7), but not optimal for later Android versions.
    // If you only plan on supporting Android 4.0.3 and up, you don't need to include this.
    implementation 'com.journeyapps:zxing-android-legacy:2.0.1@aar'
    // Convenience library to launch the scanning and encoding Activities.
    // It automatically picks the best scanning library from the above two, depending on the
    // Android version and what is available.
    implementation 'com.journeyapps:zxing-android-integration:2.0.1@aar'
    // Version 3.0.x of zxing core contains some code that is not compatible on Android 2.2 and earlier.
    // This mostly affects encoding, but you should test if you plan to support these versions.
    // Older versions e.g. 2.2 may also work if you need support for older Android versions.
    implementation 'com.google.zxing:core:3.0.1'
    //Firebase
    implementation 'com.google.firebase:firebase-core:16.0.1'
}

apply plugin: 'com.google.gms.google-services'
4

4 回答 4

9

你好~我也遇到了迁移到 Androidx 的灾难......根据谷歌文档,你应该找到 gradle 属性并添加这两行,这对我来说很好!

android.enableJetifier=true
android.useAndroidX=true

在安卓工作室的职位

祝你好运~

于 2019-09-26T09:24:21.253 回答
8

正确的答案可能是,将 Firebase 依赖项更新为具有已经使用androidx依赖项的版本,如果这还不够,还启用 Jetfier,以防其他库com.android.support引入需要重新编写的依赖项。为此,请将其添加到gradle.properties文件中:

android.enableJetifier=true
android.useAndroidX=true
于 2019-07-18T03:36:26.660 回答
0

我们需要更改 XML 布局,任何支持值都需要更改为 androiddx 值 android.support.v4.widget.SwipeRefreshLayout需要更改为androidx.swiperefreshlayout.widget.SwipeRefreshLayout

于 2019-07-10T09:45:27.323 回答
0
PS_ANDROIDBUILDTOOLSVERSION=29.0.1
android.aapt2FromMavenOverride=${Android_home}/build-tools/29.0.1/aapt2

从 maven 禁用 aapt2

于 2019-07-18T03:27:16.853 回答