如何完全清除Gradle依赖(Android应用程序)

时间:2016-11-12 06:37:00

标签: android gradle

我是Android工作室中构建Android应用程序的新手。当我尝试预览看起来跟踪回溯到RecyclerView小部件的布局文件时,我不断收到此渲染错误。我意识到我实际上并没在我的代码中使用RecyclerView,所以我从compile 'com.android.support:cardview-v7:24.2.0'的依赖项部分删除了行build.gradle。但在我清理并重建甚至删除.gradle/caches文件夹中的所有内容后,我仍然收到错误消息。当我在我的代码中搜索“RecyclerView”时,我可以看到我的android.support.v7.recyclerview文件夹中仍然有一个包app(即使我在实际目录中看不到这些文件? )。

如何完全摆脱RecyclerView?

以下是我看到的错误的堆栈跟踪:

  

java.lang.IllegalStateException:无法找到模式0   android.view.DisplayInfo.findMode(DisplayInfo.java:458)at   android.view.DisplayInfo.getMode(DisplayInfo.java:445)at   android.view.Display.getRefreshRate(Display.java:648)at   android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392)     在android.view.View.dispatchAttachedToWindow(View.java:15392)at   android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2953)     在   android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)     在   android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)     在   android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)     在   android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2960)     在   android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42)     在   com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)     在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)     在   com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389)     在   com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:548)     在   com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:533)     在   com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966)     在   com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533)     在   com.android.tools.idea.rendering.RenderTask.lambda $ $膨胀53(RenderTask.java:659)     在java.util.concurrent.FutureTask.run(FutureTask.java:266)at   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)     在java.lang.Thread.run(Thread.java:745)

知道这里发生了什么吗?

修改
这是我的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.theprotectors.theprotectors"
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner             "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:+'
    compile 'com.android.support:cardview-v7:24.2.0'
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
}

2 个答案:

答案 0 :(得分:1)

更改

compile 'com.android.support:design:+'

compile 'com.android.support:design:24.2.0'

设计库将recycleler视图作为依赖项。您还有一个重复的AppCompat。确保所有支持库版本都相同。

答案 1 :(得分:0)

正如您所说,您已从应用的build.gradle中删除了recyclerView相关性,但仍然可以看到该包,

您可以尝试:

1 - 转到 app 文件夹并导航到以下指定目录:G:\ABC\AndroidStudioProjects\ProjName\app\build\intermediates\exploded-aar\com.android. support\recyclerview-v7\ 从此处删除recyclerView的版本。

2 - 从堆栈跟踪指向渲染问题,因此从布局设计页面而不是自己选择Android SDK进行渲染选择 Automatically Pick Best < / p>

3 - 清洁 - &gt;重新构建然后使缓存无效并重新启动。

编辑问题后

compile ('com.android.support:design:+'){
    exclude module: 'recyclerview-v7'
}

希望这会对你有所帮助。