2016-11-12 351 views
0

我是在Android studio中構建Android應用程序的新手。當我嘗試預覽我的佈局文件,看起來像追溯到RecyclerView小部件時,我不斷收到此渲染錯誤。我意識到我沒有在我的代碼中實際使用RecyclerView,所以我從build.gradle的依賴部分中刪除了行compile 'com.android.support:cardview-v7:24.2.0'。但是,在我清理並重建並刪除.gradle/caches文件夾中的所有內容後,我仍然收到錯誤消息。當我在代碼中搜索'RecyclerView'時,我可以看到我的app文件夾中仍然有一個包android.support.v7.recyclerview(即使我在我的實際目錄中看不到這些文件?)。如何完全清除Gradle依賴項(Android應用程序)

我該如何完全擺脫RecyclerView?

這裏是我看到錯誤的堆棧跟蹤:

java.lang.IllegalStateException:無法在 android.view.DisplayInfo.findMode定位模式0(DisplayInfo.java:458)在 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) at 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) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) 在 com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:548) 在 融爲一體。 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) at com.android.tools.idea.rendering.RenderTask.lambda $ inflate $ 53(RenderTask.java:659) at java.util.concurrent.FutureTask .run(FutureTask.java:266)at java.util.concurren t.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' 
} 

回答

1

變化

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

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

設計庫具有回收視圖作爲一個依賴。你也有一個重複的AppCompat。確保所有支持庫版本都相同。

+0

解決了我的問題。非常感謝! – Kaitlyn

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

3-清潔 - >重新構建然後使緩存無效並重新啓動。

問題後編輯

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

希望這會幫助你。

+0

在我這樣做後,它仍然將RecyclerView版本25.0.0添加到我的''lib'文件夾中 – Kaitlyn

+0

發佈您的build.gradle –

+0

剛剛添加我的build.gradle上面 – Kaitlyn

相關問題