我是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'
}
答案 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'
}
希望这会对你有所帮助。