程序类型已存在:android.support.v4.app.BackStackRecord $ Op

时间:2018-04-19 09:34:08

标签: android

每次尝试运行我的安卓游戏时都会出现此错误:

Program type already present: android.support.v4.app.BackStackRecord$Op
Message{kind=ERROR, text=Program type already present: android.support.v4.app.BackStackRecord$Op, sources=[Unknown source file], tool name=Optional.of(D8)}

这是我的 build.gradle(app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "com.play.flyaway"
        minSdkVersion 21
        targetSdkVersion 27

        ndk {
            moduleName "player_shared"
        }
    }
    sourceSets {
        main {
            jni.srcDirs = []
        }
    }
    buildTypes{}
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

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

build.gradle(项目)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

解决这个问题的方法是什么?我当然已经尝试了我所知道的一切,但我对此很新,我真的不知道除了控制台所说的错误之外还有什么原因

5 个答案:

答案 0 :(得分:3)

您需要删除以下依赖项:

implementation files('libs/support-v4-19.0.1.jar')

并从libs目录中删除jar。然后使用compileSdkVersion的匹配支持库。因此,请使用以下命令更改上述依赖关系:

implementation 'com.android.support:support-v4:27.1.1'

这与Google play service dependency

有关
  

11.2中的SDK版本支持

     

将应用的Play服务依赖项升级到11.2.0或   之后,您的应用程序的build.gradle也必须更新以指定   compileSdkVersion至少为26(Android O)。这不会改变   您的应用运行方式。您无需更新   targetSdkVersion。

答案 1 :(得分:1)

这是关于使用的重复支持库:

这种依赖:

implementation files('libs/nineoldandroids-2.4.0.jar')

正在使用旧版本的支持库。尝试使用以下方法排除支持库:

implementation files('libs/nineoldandroids-2.4.0.jar'){    
    exclude group: 'com.android.support'
    exclude module: 'appcompat-v7'
    exclude module: 'support-v4'
}

答案 2 :(得分:0)

此问题是由于支持文件和播放服务的版本引起的。根据建议(最新)更新播放服务依赖项,并同步项目。

compile 'com.google.android.gms:play-services:12.0.1'

答案 3 :(得分:0)

我只使用了support:AppCompat,所以遇到了这个问题
使用
实现'com.android.support:design:____'
解决了此问题     实现'com.android.support:support-v4:____'
以及AppCompat

答案 4 :(得分:0)

在我的情况下,问题是我在lib /文件夹中已经存在jar。删除它可以解决问题。

因此,请检查任何文件夹中是否都存在jar:

 find . -name *.jar

如果存在于lib文件夹中,请尝试将其删除