我已经升级了我的Android Studio,我在最新版本中发现了许多问题。
虽然存在许多类似的问题,但我检查了所有问题的答案,没有一个对我有效!
以下是我在编译代码时遇到的错误:
程序类型已存在:android。支持v4.app。BackStackRecord$Op消息{kind=ERROR,text=Program type已经存在:android.support.v4.app.BackStackRecord$Op,sources=[未知源文件],工具名=Optional.of(D8)}
这是我的gradle文件:
项目:
// Top-level build file where you can add configuration options common to
all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url "https://jitpack.io"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
应用程序:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.alcantara.bugismart"
minSdkVersion 15
targetSdkVersion 27
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:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:3.0.1'
implementation 'com.github.ViksaaSkool:AwesomeSplash:v1.0.0'
}
你可以告诉我还有什么要补充的,以了解我在做什么或我错在哪里。
替代公认答案的另一种方法是告诉gradle强制更新版本:
final SUPPORT_LIB_VER = '27.1.1'
configurations.all {
resolutionStrategy {
force "com.android.support:appcompat-v7:${SUPPORT_LIB_VER}"
force "com.android.support:support-v4:${SUPPORT_LIB_VER}"
}
}
当您有许多依赖项时,这会更方便。
另请参阅:对“如何强制Gradle为两个依赖项设置相同版本”的回答
将其添加到你的应用程序模块中。格雷德尔:
implementation 'com.android.support:support-v4:27.1.1'
程序类型已存在:android。支持v4.app。BackStackRecord$Op消息{kind=ERROR,text=Program type已经存在:android.support.v4.app.BackStackRecord$Op,sources=[未知源文件],工具名=Optional.of(D8)}
出现此问题的原因是支持库重复。此依存关系:
implementation 'com.github.ViksaaSkool:AwesomeSplash:v1.0.0'
正在使用旧版本的支持库。如果您已经使用了支持库,请尝试将其排除在外:
// support libraries we want to use
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
// we already have the specific support libraries. So, exclude it
implementation ('com.github.ViksaaSkool:AwesomeSplash:v1.0.0') {
exclude group: 'com.android.support'
exclude module: 'appcompat-v7'
exclude module: 'support-v4'
}
您需要使用以下命令检查依赖关系:
./gradlew app:dependencies
或者,您也可以通过添加具有所需确切版本的冲突库来覆盖支持库版本。
在添加构建依赖项留档中,有一个完整的步骤可以修复依赖项解析错误。以下是摘录:
当您向应用程序项目添加多个依赖项时,这些直接和可传递的依赖项可能会相互冲突。Android Gradle插件试图优雅地解决这些冲突,但一些冲突可能会导致编译时或运行时错误。
为了帮助您调查哪些依赖关系导致了错误,请检查应用程序的依赖关系树,并查找出现多次或版本冲突的依赖关系。
如果您无法轻松识别重复依赖项,请尝试使用Android Studio的UI搜索包含重复类的依赖项,如下所示:
以下各节描述了您可能遇到的不同类型的依赖项解析错误以及如何修复这些错误。
如果一个类在运行时类路径上出现多次,则会出现类似以下错误:
Program type already present com.example.MyClass
此错误通常由以下情况之一引起:
>
二进制依赖项包括一个库,您的应用也将其作为直接依赖项包含在内。例如,您的应用声明了对库A和库B的直接依赖项,但库A已在其二进制文件中包含库B。
您的应用程序在同一库上具有本地二进制依赖项和远程二进制依赖项。
当Gradle解析编译类路径时,它首先解析运行时类路径,并使用结果来确定应该将哪些版本的依赖项添加到编译类路径中。换句话说,运行时类路径确定下游类路径上相同依赖项所需的版本号。
您的应用程序的运行时类路径还确定Gradle在应用程序测试APK的运行时类路径中匹配依赖项所需的版本号。类路径的层次结构如下图所示:
例如,当您的应用程序包括使用依赖项配置的依赖项版本,并且库模块包括使用仅运行时配置的依赖项的不同版本时,可能会发生冲突,即同一依赖项的不同版本出现在多个类路径中。
在解决对运行时和编译时类路径的依赖时,Android Gradle插件3.3.0和更高版本会尝试自动修复某些下游版本冲突。例如,如果运行时类路径包括库A版本2.0,编译类路径包括库A版本1.0,则插件会自动将编译类路径上的依赖项更新为库A版本2.0,以避免错误。
但是,如果运行时类路径包含Library A版本1.0,而编译类路径包含Library A版本2.0,则插件不会将对编译类路径的依赖降级为Library A版本1.0,并且您仍然会收到类似于以下内容的错误:
Conflict with dependency 'com.example.library:some-lib:2.0' in project 'my-library'.
Resolved versions for runtime classpath (1.0) and compile classpath (2.0) differ.
要解决此问题,请执行以下操作之一:
我正在重构一个应用程序来使用AndroidX。我一直在努力摆脱所有不支持它的库。我以为我已经删除了所有使用支持库的库,但看起来仍然有一些东西在导入它。我现在得到一个错误: AGPBI:{“kind”:“Error”,“text”:“程序类型已存在:Android.support.v4.os.resultreceiver$MyResultreceiver”,“sources”:[{}],“工具”:“
问题内容: 我的android应用拒绝生成以下错误: 我的build.gradle依赖项 当我添加com.github.GrenderG:Prefs依赖项时,它可能开始发生 问题答案: 将此行添加到build.gradle文件。
问题内容: 每当我尝试构建项目时添加时,Android Studio都会说: 这是我的gradle脚本: 我是这种类型的错误的新手,但我没有发现与此错误有关的任何一种。谢谢 问题答案: 我也整天都在努力解决这个问题。最终,我成功地编译并运行了该项目。 首先,摆脱这一点: 在gradle.properties文件中添加以下内容: 最后,同步项目,然后进行编译。 如果不起作用,请清理项目,然后重新生成
误差 > 错误:任务“:app:TransformDexArchiveWithExternAllibsDexMergerForDebug”执行失败。 com.android.builder.dexing.dexArchivEmergerException:合并dex归档时出错:/app/build/intermediates/transforms/dexbuilder/debug/0.jar,程序
问题内容: 我将Android Studio更新为3.1,更新后出现此错误: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’. Caused by: java.lang.RuntimeE
Unity 2018.4.15。为Android平台构建项目时出错: CommandInvokationFailure: Gradle build失败。J:\Program Files\2018.4.15f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath “J:\Pro