Can't find android.support.design.widget.Snackbar in support design library

谁说我不能喝 提交于 2020-08-21 03:47:50

问题


I develop own library module where I use Snackbar.

Here is my Gradle file:

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

As you can see, I have added import com.android.support:design:23.1.1, but as result I get error:

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

How can I solve this problem?


回答1:


You must add the design dependency in your gradle file (module app) according to


AndroidX build artifact

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


Old build artifact

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


If you are using Support libraries, you can visit Support Library Packages  |  Android Developers, for the latest Design Support Library version. If you're new to AndroidX and want to use it, you can find more information about migrating to the new dependencies here.

Source: http://android-developers.blogspot.co.il/2015/05/android-design-support-library.html
(Scroll all the way down)




回答2:


I solved the problem now :)

  1. Open [File] -> [Project Structure...]

  2. Select [app] in the left pad

  3. Select [Dependencies] in the right tabs

  4. Click [+] button on the right side

  5. Select [1 Library dependency]

  6. Choose [com.android.support:design ~~]

  7. Click [OK] button and so on

Result: library added in [Project's External Libraries]

------ edit -----------------------------------

You can also add this External library in build.gradle(Module:app)

press Alt+Enter in build.gradle(Module:app)

-> add library dependency

-> choose what you need

and press "Sync Now" positioned up right corner




回答3:


To get the the Snackbar into our Android proyect just add the reference of support:design library inside the build.gradle file :

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

Be sure to sync your project with the gradle files , this will fix your problem.


Your error message is:

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

be sure to have the correct import:

import android.support.design.widget.Snackbar;



回答4:


If you are migrating to androidx then use

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

instead of

android.support.design.R.id.snackbar_text

Don't miss to import import com.google.android.material.snackbar.Snackbar;

Also implement implementation "com.google.android.material:material:1.2.0-alpha02"




回答5:


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

set it in gradle.(module app) its working for me in android studio and device with orio.




回答6:


Try this

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



回答7:


Dependencies may change with upgrading of android sdk versions, i am creating application in sdkversion 27. I have added the following dependency for snackbar.
implementation 'com.android.support:design:27.1.1'




回答8:


Just type fully qualified class name android.support.design.widget.SnackBar instead of just SnackBar at every occurrence . It solves the issue for me.




回答9:


After upgrading to androidx it will show error.You have to import this library

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();

Hope it will solve your problem.




回答10:


Remove Support v4 from your project and then add support design library.




回答11:


Use implementation "com.android.support:design:23.0.0"

or Change the Sdk to 28 and use implementation "com.android.support:design:28.0.0"



来源:https://stackoverflow.com/questions/34263418/cant-find-android-support-design-widget-snackbar-in-support-design-library

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!