Android Studio:每当尝试再次启动应用程序时都会失败

时间:2018-08-03 22:33:14

标签: android android-studio

Android Studio出现问题: 第一次点击“运行”(即绿色三角形)时,我可以运行我的Android应用。然后它将启动AVD并加载我的应用程序,以便我可以对其进行测试和调试。 但是每当我想再次启动应用程序时(即通常在进行一些修改之后),gradle的构建总是以以下结尾:

   ...
   (!) Run Task
Android issues: 1 Error
   (!) Program type already present: android.support.v4.app.BackStackRecord$Op

右侧窗格显示为:

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)}

这为什么不加载并重新启动应用程序的新/修改版本。我找到其他地方。提出相同问题的线程,但是那里给出的建议都没有帮助我解决此问题。因此,我仍然总是需要杀死AVD并重新启动它,这是非常繁琐且耗时的,因为它随后始终首先需要重新启动!我怎样才能解决这个问题?

我的应用程序的gradle文件读取:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "myapp.application.mmo.myapp"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.android.support:design:28.0.0-alpha3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

我想念什么?为什么这不起作用,并用新版本替换已安装的应用程序?

PS .:我不会声称以前的基于Eclipse的Android开发环境是完美的。绝对不是那个!但是在基于IntelliJ的环境中,我有更多的麻烦和怪异之处!如果事情在这里行不通,我总是会发现很难找出原因为什么不行!

1 个答案:

答案 0 :(得分:0)

您的build.gradle没有任何com.android.support:support-v4(可能在libs目录中,最好将其删除),因此我认为它已经被编辑,直到它不再与错误消息匹配...

在终端中运行./gradlew :app:dependencies > ./dependencies.txt来查看依赖于support-v4的内容,然后使用exclude来确保每个库仅在构建中一次存在配置。

为了调试,不是按钮:run,而是按钮:debug