【问题标题】:How to totally clear a Gradle dependency (Android app)如何完全清除 Gradle 依赖项(Android 应用)
【发布时间】:2016-11-12 06:36:59
【问题描述】:

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

我怎样才能完全摆脱 RecyclerView?

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

java.lang.IllegalStateException:无法在 android.view.DisplayInfo.findMode(DisplayInfo.java:458) 在 android.view.DisplayInfo.getMode(DisplayInfo.java:445) 在 android.view.Display.getRefreshRate(Display.java:648) 在 android.support.v7.widget.RecyclerView.onAttachedToWindow(RecyclerView.java:2392) 在 android.view.View.dispatchAttachedToWindow(View.java:15392) 在 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$inflate$53(RenderTask.java:659) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 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'
}

【问题讨论】:

    标签: android gradle


    【解决方案1】:

    改变

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

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

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

    【讨论】:

    • 解决了我的问题。非常感谢!
    【解决方案2】:

    正如您所说,您已从应用程序的 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

    3- Clean -> Re-build then Invalidate cache and restart.

    问题编辑后

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

    希望这会对您有所帮助。

    【讨论】:

    • 在我这样做之后,它仍在将 RecyclerView 版本 25.0.0 添加到我的 lib 文件夹中
    • 发布你的 build.gradle
    • 刚刚在上面添加了我的 build.gradle
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多