我们希望使用Google提供的最新材料设计ui元素.因此我com.google.android.material:material:1.0.0-beta01在我们的项目中添加了gradle文件.但从那以后我收到以下错误.
清单合并失败:来自[androidx.core:core:1.0.0-beta01]的属性应用程序@ appComponentFactory值=(androidx.core.app.CoreComponentFactory)AndroidManifest.xml:22:18-86也出现在[com.android] .support:support-compat:28.0.0-beta01] AndroidManifest.xml:22:18-91 value =(android.support.v4.app.CoreComponentFactory).建议:在AndroidManifest.xml:5:5-40:19中添加'tools:replace ="android:appComponentFactory"'来覆盖.
没有材料库,一切正常.
我已经尝试过了什么
tools:replace="android:appComponentFactory"按照错误消息中的建议添加到我们的Manifest文件中.但这给我留下了一条新的错误信息:java.lang.RuntimeException:Manifest merger因多个错误而失败,请参阅com.android.builder.orers.merd.build.tasks.ProcessManifest.doFullTaskAction中的com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:524)上的日志(ProcessManifest) .java:75)在com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
我检查了日志文件,但是idea.log中显示的唯一警告是
2018-08-08 11:08:21,500 [thread 267] WARN - .tools.idea.model.ManifestInfo - getMergedManifest failed Manifest merger因多个错误而失败,请参阅日志2018-08-08 11:08:21,642 [thread 267]警告 - .tools.idea.model.ManifestInfo - getMergedManifest失败Manifest合并失败并出现多个错误,请参阅日志2018-08-08 11:08:21,917 [J pool 0/7]
更多信息
API版本
android {
compileSdkVersion 28
buildToolsVersion '28.0.0'
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
Run Code Online (Sandbox Code Playgroud)
(在Android Studio的文件>项目结构中选择相同的API)
依赖关系:
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
/** ANDROID LIBRARIES **/
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0-beta01' …Run Code Online (Sandbox Code Playgroud) 我们目前正在通过Android应用程序项目迁移到Androidx命名空间。但是我注意到不仅名称空间似乎已更改。对于DialogPreference,现在也缺少以前使用的一些接口
例如,似乎缺少以下方法:onBindDialogView,showDialog,onDialogClosed。
由于我们使用其中一些方法来影响对话框的默认行为,因此我不清楚现在应如何实现此功能。例如,我们在关闭对话框之前验证输入,我们将值而不是sharedpreferences保存在数据库中,并向对话框中添加一些动态元素。
其他人是否已经遇到此问题并找到了解决方案?我错过了文档中的任何内容吗?我们可以/应该使用另一个概念吗?
可以使用Fragments而不是DialogPreference,但是对于少量内容(例如,用户可以从中选择的树项目列表)来说,这似乎给我带来了很多开销……