Евг*_*сов 193 android build.gradle android-gradle-plugin gradle-plugin
我有下一个年级
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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'
implementation 'com.google.android.material:material:1.0.0-rc01'
}
Run Code Online (Sandbox Code Playgroud)
但是当我想构建应用程序时,我会得到下一个日志:
Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Run Code Online (Sandbox Code Playgroud)
好! 去清单并执行:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.chopcode.myapplication">
<application
tools:replace="android:appComponentFactory"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
然后我在Logcat中收到此错误:
Manifest merger failed with multiple errors, see logs that I have Linked with it
Run Code Online (Sandbox Code Playgroud)
Abi*_*san 390
我有类似的问题.在gradle.properties文件中添加了两行:
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
这两行自动解决了我的谷歌文件和第三方依赖项之间的依赖冲突.这是以下链接:https://developer.android.com/topic/libraries/support-library/androidx-overview#new-project
Khe*_*raj 93
您正在使用属于AndroidX的材料库.如果您不了解AndroidX,请仔细阅读此答案.
一个应用程序应该使用AndroidX或旧的Android支持库.这就是你遇到这个问题的原因.
例如 -
在您的gradle中,您正在使用
com.android.support:appcompat-v7 (部分旧版--Android支持库 - )com.google.android.material:material(AndroidX的一部分)(AndroidX构建工件com.android.support:design)所以解决方案是使用AndroidX或旧的支持库.我建议使用AndroidX,因为Android不会在版本28.0.0之后更新支持库.请参阅支持库的发行说明.
只需迁移到AndroidX即可.以下是我迁移到AndroidX的详细解答.我在这里从这个答案中得到了必要的步骤.
在迁移之前,强烈建议您备份项目.
现有项目
新项目
把这些标志放在你的 gradle.properties
android.enableJetifier=true
android.useAndroidX=true
Run Code Online (Sandbox Code Playgroud)
检查@ Library映射是否具有相同的AndroidX包.
小智 79
就我而言,这是完美的工作..我在清单文件中添加了以下两行代码
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Run Code Online (Sandbox Code Playgroud)
幸得这个答案。
E J*_*nga 29
在中gradle.properties,只需在下面添加两个脚本
android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)
是什么原因?
AndroidX中的所有程序包都位于以字符串androidx开头的一致名称空间中。支持库包已映射到相应的androidx。*包中。有关所有旧类和构建构件到新构件的完整映射,请参见Package Refactoring页面。
请参阅“软件包重构”页面
Anu*_*pta 16
只需将依赖项内的第一行和最后一行中的"rc01"更改为"alpha1"这对我有用
mug*_*hil 13
从Android P开始,支持库已移至AndroidX
https://developer.android.com/topic/libraries/support-library/refactor
Arf*_*leb 12
只需删除android.support依赖项
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Run Code Online (Sandbox Code Playgroud)
引自材料指南
如果您还不想切换到新的androidx和com.google.android.material包,可以通过com.android.support:design:28.0.0-alpha3依赖项使用Material Components.
注意:您不应同时在应用中使用com.android.support和com.google.android.dependencies.
只是删除此依赖项工作正常
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Run Code Online (Sandbox Code Playgroud)
这是完整的依赖示例
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
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'
}
Run Code Online (Sandbox Code Playgroud)
只需将这两行代码添加到清单文件中
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Run Code Online (Sandbox Code Playgroud)
在Android AndroidManifest.xml中查看此图像并添加此行
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Run Code Online (Sandbox Code Playgroud)
这个问题主要发生在旧的依赖关系上。
有2个解决方案:
第一:
从文件更新所有old dependencies和类路径Project level gradle。
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.2.0'
Run Code Online (Sandbox Code Playgroud)
第二个:
你的项目 Migrate to AndroidX
从 Android Studio 菜单 -> Refanctor -> Migrate to AndroidX
谢谢,如果有人从这个答案中得到帮助,请告诉我。
最后,通过在android/build.gradle文件中添加两行找到了一种快速简便的解决方案。
googlePlayServicesVersion = "16.+"
firebaseVersion = "17.6.0"
Run Code Online (Sandbox Code Playgroud)
请遵循此100%正确的规定。
将这些行添加到AndroidManifest.xml文件中。
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Run Code Online (Sandbox Code Playgroud)
所有关于库版本兼容性的信息
我两个小时就遇到了这个奇怪的错误。我通过执行以下步骤解决了该错误
将您的build.gradle依赖项挂起
implementation 'com.google.android.gms:play-services-maps:17.0.0'
Run Code Online (Sandbox Code Playgroud)
至
implementation 'com.google.android.gms:play-services-maps:15.0.0'
Run Code Online (Sandbox Code Playgroud)
仅当您不想使用androidx时
因此,在我的情况下,我使用的是使用androidx的库,但我没有使用androidx,因此当我将该库版本降级时,问题已解决。
就我而言:
implementation 'com.github.turing-tech:MaterialScrollBar:13.+'
Run Code Online (Sandbox Code Playgroud)
上面提到的库导致问题13. +将使用androidx自动获取库的新版本。所以我将库版本降级为:
implementation 'com.github.turing-tech:MaterialScrollBar:13.2.5'
Run Code Online (Sandbox Code Playgroud)
问题解决了。
我所做的只是转到顶部菜单上的“重构”选项。
然后选择“迁移到AndroidX”
接受以将项目另存为 zip 文件。
请更新 Android Studio 和 Gradle 以确保不会遇到问题。
小智 5
请转到重构->迁移->迁移到AndroidX。
请将其添加到gradle.properties文件中:android.enableJetifier = true android.useAndroidX = true
并执行同步。
小智 5
如果现有项目,请迁移到androidX。如果是新项目,请将这两个标志添加到Gradle.propeties
android.enableJetifier = true
android.useAndroidX = true
有关更多详细信息,请访问https://developer.android.com/jetpack/androidx 或查看“ 什么是AndroidX”
| 归档时间: |
|
| 查看次数: |
289884 次 |
| 最近记录: |