在支持设计库中找不到android.support.design.widget.Snackbar

时间:2015-12-14 09:26:07

标签: android android-support-library

我使用Snackbar开发自己的库模块。

这是我的Gradle文件:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'me.zhanghai.android.materialprogressbar:library:1.1.4'
    compile 'com.android.support:design:23.1.1'
}

正如您所看到的,我添加了import com.android.support:design:23.1.1,但结果我收到错误:

  

错误:包android.support.design.R不存在

我该如何解决这个问题?

11 个答案:

答案 0 :(得分:57)

您必须根据

在gradle文件(模块应用程序)中添加设计依赖项


AndroidX构建工件

implementation "com.google.android.material:material:1.1.0-alpha06"


旧构建工件

implementation "com.android.support:design:28.0.0"


如果您使用的是支持库,则可以访问Support Library Packages  |  Android Developers,获取最新的Design Support Library版本。如果您是AndroidX的新用户并希望使用它,则可以找到more information about migrating to the new dependencies here

来源:http://android-developers.blogspot.co.il/2015/05/android-design-support-library.html
(完全向下滚动)

答案 1 :(得分:18)

我现在解决了这个问题:)

  1. 打开[文件] - > [项目结构......]

  2. 在左侧栏中选择[app]

  3. 在右侧选项卡中选择[依赖关系]

  4. 点击右侧的[+]按钮

  5. 选择[1 Library dependency]

  6. 选择[com.android.support:design ~~]

  7. 单击[确定]按钮,依此类推

  8. 结果:库已添加         在[项目的外部图书馆]

    ------编辑-----------------------------------

    您还可以在build.gradle(Module:app)

    中添加此外部库

    在build.gradle(模块:应用程序)

    中按Alt + Enter

    - >添加库依赖

    - >选择你需要的东西

    并按右上角的“立即同步”

答案 2 :(得分:11)

要将Snackbar放入我们的Android proyect,只需在build.gradle文件中添加support:design library的引用:

dependencies {
    ...
    ...
    compile 'com.android.support:design:25.0.1'
}

请务必将您的项目与gradle文件sync gradle icon同步,这样可以解决您的问题。

您的错误消息是:

  

错误:包android.support.design.R不存在

确保输入正确:

import android.support.design.widget.Snackbar;

答案 3 :(得分:3)

试试这个

dependencies {
 compile fileTree(include: ['*.jar'], dir: 'libs')
 testCompile 'junit:junit:4.12'
 compile 'com.android.support:appcompat-v7:22.2.0'
 compile 'me.zhanghai.android.materialprogressbar:library:1.1.4'
 compile 'com.android.support:design:22.2.1'
 }

答案 4 :(得分:3)

随着android sdk版本的升级,依赖关系可能会改变,我在sdkversion 27中创建了应用程序。我为snackbar添加了以下依赖项。
 implementation 'com.android.support:design:27.1.1'

答案 5 :(得分:2)

只需输入完全限定的类名 android.support.design.widget.SnackBar 而不是每次都出现 SnackBar 。它解决了我的问题。

答案 6 :(得分:2)

升级到androidx后,它将显示错误。您必须导入该库

import com.google.android.material.snackbar.Snackbar;
 Snackbar snackbar = Snackbar.make(view, R.string.Mapview, Snackbar.LENGTH_INDEFINITE);
            View snackbarView = snackbar.getView();
            TextView textView = (TextView) snackbarView.findViewById(com.google.android.material.R.id.snackbar_text);
            textView.setMaxLines(5);
            snackbar.show();

希望它能解决您的问题。

答案 7 :(得分:1)

implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:support-annotations:28.0.0'

在gradle中设置它。(模块应用) 它可以在Android Studio和带有Orio的设备上为我工作。

答案 8 :(得分:1)

如果您要迁移到androidx,请使用

com.google.android.material.R.id.snackbar_text

代替

android.support.design.R.id.snackbar_text

不要错过导入import com.google.android.material.snackbar.Snackbar;

还实施implementation "com.google.android.material:material:1.2.0-alpha02"

答案 9 :(得分:0)

从项目中删除Support v4,然后添加支持设计库。

答案 10 :(得分:0)

使用实现“ com.android.support:design:23.0.0”

或将SDK更改为28并使用 实现“ com.android.support:design:28.0.0”