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

53

我开发了自己的库模块,其中使用了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包

我该如何解决这个问题?


2
你在代码块中输入的导入包是错误的。正确的路径应该是 import android.support.design.widget.Snackbar - Sharp Edge
将您的构建工具版本更改为23.1.1。 - Anuj Sharma
1
添加,编译'com.android.support:design:23.0.0' - Tushar Pandey
如果您正在迁移到 Androidx,则这可能会有所帮助 https://dev59.com/Z1sX5IYBdhLWcg3wFsEa#59115576 - VikaS GuttE
11个回答

94

根据要求,在您的gradle文件(module app)中添加设计依赖。


AndroidX构建工件

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

旧的构建产物


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

如果您正在使用Support库,则可以访问Support Library Packages  |  Android Developers获取最新的Design Support库版本。如果您是新手并想要使用AndroidX,您可以在此处找到有关迁移到新依赖项的更多信息

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


1
我已经添加了编译'com.android.support:design:23.1.1',但是没有帮助。更改版本之间有什么区别吗? - Pranjal Choladhara
没有太多关于代码的变化,但项目开始后更改版本时遇到了许多问题,因此我只能假设还有其他需要更改的设置。如果您必须更改版本,请尝试启动一个新项目并导入所有代码和资源。 - Max Izrin
2
如果您使用 android x 依赖项,则需要添加以下代码:implementation "com.google.android.material:material:1.0.0-rc01" - Sirop4ik
如果您正在迁移到Androidx,则可能会有所帮助 https://dev59.com/Z1sX5IYBdhLWcg3wFsEa#59115576 - VikaS GuttE

21

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

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

  2. 在左侧面板中选择[app]

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

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

  5. 选择[1个库依赖项]

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

  7. 点击[确定]按钮等等

结果:库已添加到[项目的外部库]中

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

您还可以将此外部库添加到build.gradle(Module:app)中

在build.gradle(Module:app)中按Alt+Enter

-> 添加库依赖项

-> 选择所需内容

然后按“同步”按钮,位于右上角


如果您正在迁移到Androidx,则可能会有所帮助 https://dev59.com/Z1sX5IYBdhLWcg3wFsEa#59115576 - VikaS GuttE

11

为了在我们的Android项目中使用Snackbar,只需在build.gradle文件中添加support:design库的引用:

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

请确保将项目与Gradle文件同步sync gradle icon,这将解决您的问题。


您的错误信息为:

error: package android.support.design.R does not exist

请确保正确导入:

import android.support.design.widget.Snackbar;

10

如果您正在迁移到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"


4
升级到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();

希望它能解决你的问题。

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

在gradle(module app)中设置它。 这对我在Android Studio和运行Orio的设备上有效。


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'
 }

3

随着 Android SDK 版本的升级,依赖关系可能会发生变化,我正在使用 SDK 版本 27 创建应用程序。我已为 Snackbar 添加了以下依赖项:

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

2

在每个出现的地方,只需键入完全限定的类名android.support.design.widget.SnackBar,而不是仅仅使用SnackBar。这对我解决了问题。


也解决了我的问题。 - Pranjal Choladhara

0

从您的项目中删除Support v4,然后添加support design库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接