程序类型已存在:android.support.v4.app.BackStackState $ 1

Div*_*nki 5 android

我升级了我的android工作室..我在最新版本中发现了很多问题

虽然存在许多类似的问题,但我检查了所有答案,但没有一个对我有效!

这是编译代码时我遇到的错误:

Program type already present: android.support.v4.app.BackStackState$1
Message{kind=ERROR, text=Program type already present: android.support.v4.app.BackStackState$1, sources=[Unknown source file], tool name=Optional.of(D8)}
Run Code Online (Sandbox Code Playgroud)

gradle文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

app gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "com.guideapp.trickapp"
        minSdkVersion 14
        targetSdkVersion 23

        ndk {
            moduleName "player_shared"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    externalNativeBuild {
        ndkBuild {
            path '../../../Application.mk'
        }
    }
}

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/dagger-1.2.2.jar')
    compile files('libs/javax.inject-1.jar')
    compile files('libs/nineoldandroids-2.4.0.jar')
    compile files('libs/support-v4-19.0.1.jar')
}
Run Code Online (Sandbox Code Playgroud)

ישו*_*ותך 4

不要使用以下内容:

compile 'com.google.android.gms:play-services:+'
Run Code Online (Sandbox Code Playgroud)

因为您必须使用确切版本的播放服务。并且仅使用您的应用使用的特定 Google Play 服务 API。例如,如果您使用位置,则只需要以下依赖项:

implementation 'com.google.android.gms:play-services-location:15.0.1'
Run Code Online (Sandbox Code Playgroud)

了解更多信息,请参阅设置 Google Play 服务

然后将您的支持库更改为与您的buildToolsVersion. 因此,您需要更改以下内容:

implementation files('libs/support-v4-19.0.1.jar')
Run Code Online (Sandbox Code Playgroud)

implementation 'com.android.support:support-v4:27.1.1'
Run Code Online (Sandbox Code Playgroud)

support-v4-19.0.1.jarlibs目录中删除该文件。

最后,对以下内容使用相同的版本:

  1. compileSdkVersion
  2. buildToolsVersion
  3. targetSdkVersion

我的建议是使用版本27。所以,你的应用程序 build.gradle将是这样的:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "com.guideapp.trickapp"
        minSdkVersion 14
        targetSdkVersion 27

        ndk {
            moduleName "player_shared"
        }
    }

    ...

}

dependencies {
    implementation 'com.google.android.gms:play-services-location:15.0.1'
    compile files('libs/dagger-1.2.2.jar')
    compile files('libs/javax.inject-1.jar')
    compile files('libs/nineoldandroids-2.4.0.jar')
    implementation 'com.android.support:support-v4:27.1.1'

}
Run Code Online (Sandbox Code Playgroud)