谷歌材料设计库错误 程序类型已经存在:android.support.v4.app.INotificationSideC



每当我在尝试构建项目时添加implemntation 'com.google.android.material:material:1.0.0-alpha1'时,Android Studio 都会说:

程序类型已存在:android.support.v4.app.INotificationSideChannel$Stub$Proxy 消息{kind=ERROR,文本=程序类型已存在:android.support.v4.app.INotificationSideChannel$Stub$Proxy,sources=[未知源文件],工具名称=Optional.of(D8)}

这是我的 gradle 脚本:

apply plugin: 'com.android.application'
android {
compileSdkVersion 'android-P'
defaultConfig {
applicationId "it.smart.bab3"
minSdkVersion 21
targetSdkVersion 'p'
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-alpha1'
implementation 'com.google.android.material:material:1.0.0-alpha1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
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.android.support:design:28.0.0-alpha1'
implementation 'com.android.support:support-v4:28.0.0-alpha1'
}

我是这种类型的错误的新手,我没有发现这个错误的动漫。谢谢

我也一直在为这个问题而苦苦挣扎。最后,我设法成功编译并运行了该项目。

首先,摆脱这个:

implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
implementation 'com.android.support:design:28.0.0-alpha1'
implementation 'com.android.support:support-v4:28.0.0-alpha1'

在您的 gradle.properties 文件中添加以下内容:

android.useAndroidX = true
android.enableJetifier = false

最后,同步项目,然后编译。

如果不起作用,请清理项目,然后重新生成。

PS:我无法让targetSdkVersion 'p'工作。我的build.gradle文件最终如下:

apply plugin: 'com.android.application'
android {
compileSdkVersion 'android-P'
defaultConfig {
applicationId "com.github.alvarosct02.demo"
minSdkVersion 19
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.google.android.material:material:1.0.0-alpha1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
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'
}

希望它也适合您。

我浪费了 2 天时间寻找解决方案。任何仍在寻找解决方案的人都可以按照以下步骤操作:

  1. 将您的 Android Studio 更新到最新版本。

  2. 将 compileSdkVersion 和 targetSdkVersion 更新为 28。

    android {
    compileSdkVersion 28
    defaultConfig {
    applicationId "com.your.appid"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 50
    versionName "1.50"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
    setProperty("archivesBaseName", "your-app-$versionName")
    resConfigs "en"
    }
    }
    
  3. 转到您的项目结构并将您的 gradle 版本更改为4.10

  4. 首先添加此依赖项:

    implementation 'com.google.android.material:material:1.0.0'
    
  5. 现在删除所有支持库依赖项:

    implementation "com.android.support:design:$SUPPORT_LIBRARY_VERSION"
    implementation "com.android.support:support-v4:$SUPPORT_LIBRARY_VERSION"
    implementation "com.android.support:appcompat-v7:$SUPPORT_LIBRARY_VERSION"
    implementation "com.android.support:recyclerview-v7:$SUPPORT_LIBRARY_VERSION"
    implementation "com.android.support:cardview-v7:$SUPPORT_LIBRARY_VERSION"
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:multidex:1.0.3'
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    androidTestImplementation('com.android.support.test.espresso:espresso- 
    core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
    exclude group: 'com.google.code.findbugs', module: 'jsr305'
    })
    
  6. 现在将以下内容粘贴到您的gradle.properties文件中:

    android.useAndroidX = true
    android.enableJetifier = true
    
  7. 在项目级build.gradle文件中:

    dependencies {
    classpath 'com.android.tools.build:gradle:3.2.0'
    classpath 'com.google.gms:google-services:4.1.0'
    };
    

对于那些使用Butterknife的用户,请在项目级别build.gradle文件中添加以下行:

allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven { url "https://dl.bintray.com/drummer-aidan/maven/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
}

在您的模块build.gradle文件中添加以下依赖项:

implementation "com.jakewharton:butterknife:9.0.0-SNAPSHOT"
annotationProcessor "com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT"
  1. 现在转到构建>重建项目,那么您可能会收到很多错误。
  1. 现在参考此链接。

    它包含所有旧的(android.support)与新的(androidx.*)依赖项的列表。

    新的
    替换所有旧的导入(使用安卓工作室的替换所有功能[ctrl + shift + R],这将为您节省一些时间)。
  1. 最后,用新库重构所有旧库后:
    再次重建项目,希望它应该可以工作。

注意:您也可以在 android 工作室中使用Refactor> 迁移到 androidx,但它对我不起作用。

将 ButterKnife 升级到 8.8.1 版后,我开始收到此错误。

因此,我运行命令gradle -q dependencies生成依赖项报告,之后您应该看到 D8 的来源。就我而言,来自"黄油刀"库:

+--- com.jakewharton:butterknife:8.8.1
|    |    --- com.android.support:support-compat:d8

您也可以通过转到Android Studio Gradle视图(在Android Studio工具栏中导航到"View/Tool Windows/Gradle")并在"My-Project-Name/Tasks/android"下选择目标"androidDependencies"(双击运行或右键单击并运行)来查看您的Android依赖项。

为了解决这个问题,我将这段代码exclude module: 'support-compat'添加到我的"app/build.gradle"中,如下所示:

implementation ('com.jakewharton:butterknife:8.8.1') { 
exclude module: 'support-compat' 
} 
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

希望它对其他人有用:]干杯!

Android Studio v3.2+ 解决了这个问题。它还在"重构"菜单下添加了"迁移到 AndroidX"项。无需变通方法或回滚。

从测试版频道更新 Android Studio 以使用 3.2+ 或等待稳定版本发布。

编辑:Android Studio v3.2现在处于稳定频道。请务必不要再使用支持库并迁移到 AndroidX 库,因为对旧支持库的支持已结束。

如果您要包含的库对 Android 支持库具有传递依赖性,您还必须使用 Android Gradle 插件版本 3.2.0-alpha14 或更高版本的jetifier功能。您可以通过运行 Gradledependencies任务来确定您是否有依赖于支持库的库。

来自 Android 开发者的博客文章 (https://android-developers.googleblog.com/2018/05/hello-world-androidx.html):

如果您依赖于引用较旧支持库的库, Android Studio 将更新该库以引用 androidx 通过依赖关系转换。依赖项转换会自动 由 Android Gradle 插件 3.2.0-alpha14 应用,它重写了 JAR 和 AAR 依赖项(以及可传递)的字节码和资源 依赖项)来引用新的 androidx 打包类和 工件。我们还将提供一个独立的翻译工具作为 .JAR。

gradle.properties文件中,确保您具有:

android.enableJetifier=true android.useAndroidX=true

我在一个小项目中遇到了Leak Canary的问题,通过将Android Gradle插件升级到适当的版本来解决。 https://github.com/square/leakcanary/issues/1103

转到 app/build.gradle,在依赖项中,删除以下行:

implementation "com.android.support:appcompat-v7

尝试添加

android.enableD8 = false

到 gradle.properties 文件。

如果你想使用com.android.support:support-v4:28.0.0-alpha1

那么你必须使用

com.android.support:design:28.0.0-alpha1

而不是

com.google.android.material:material:1.0.0-alpha1.

使用这个

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 28
defaultConfig {
applicationId "ir.uncode.newdesign"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguardrules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
implementation 'com.android.support:design:28.0.0-alpha3'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
implementation 'com.android.support:animated-vector-drawable:28.0.0-alpha3'}
repositories {
mavenCentral()
}

如果问题仍然存在,请在类和 xml 上更改"导入"。

喜欢:

import androidx.fragment.app.Fragment;
import android.support.v4.app.Fragment;

import androidx.core.app.ActivityCompat;
import android.support.v4.app.ActivityCompat;

com.google.android.material.bottomappbar.BottomAppBar
android.support.design.bottomappbar.BottomAppBar

如果你使用的是Android Studio V. 3.2.1,你可以简单地去工具栏打开重构->迁移到AndroidX,Android studio会负责剩下的工作。

我正在使用安卓工作室3.3版本。我浪费了一天半的时间寻找这个解决方案。我尝试了这篇文章中的所有答案,但没有任何帮助。然后我找到了帮助我解决错误的链接。

我删除了我添加的以下依赖项,

implemntation 'com.google.android.material:material:1.0.0'

相反,我使用了安卓设计支持库,

implementation 'com.android.support:design:27.1.1'

尝试设置android.enableJetifier=trueandroid.useAndroidX=true在您的 gradle.properties 文件中。

如果您必须更改为3.2.03.1.0

dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
}
您需要
  1. 移动到androidx

  2. 删除所有以import android.support.*

  3. 将所有导入更改为import androix.*和相应的组件。

相关内容

  • 没有找到相关文章

最新更新