[英]“ClassNotFoundException: android.support.v7.widget.GridLayout” even if it is actually imported
我有一個奇怪的問題。 我在Ubuntu 15.10上使用Android Studio 2.1。
我正在嘗試從v7支持庫中實現GridLayout
。 我從SDK Manager安裝了Android Support Library
和Android Support Repository
,並將gridlayout添加到我的應用程序build.gradle依賴項中:
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:gridlayout-v7:23.3.0'
將其添加到我的布局XML文件時,它會正確自動完成,就像它應該導入一樣。
<android.support.v7.widget.GridLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="4"
app:rowCount="4"
android:id="@+id/keypadButtons"
app:alignmentMode="alignBounds">
...
但是,當我去構建項目以查看設備上的外觀時,由於某種原因它失敗了。
當我想在“設計”視圖中檢出它時,我發現事件日志中有一個解析錯誤,指出:
java.lang.RuntimeException: java.lang.ClassNotFoundException: android.support.v7.widget.GridLayout
編輯:在“設計”視圖中查看GridLayout時,它甚至按原樣呈現(在我的情況下為4列4行)。 但是給出了未找到的GridLayout類的解析錯誤,並且無法顯示我的其他元素的組件樹。
添加庫時是否錯過了某些步驟? 我在Windows上使用了其他v4和v7支持庫,沒有任何問題。 可能是Linux權限問題嗎?
我已經嘗試過您的代碼,並且效果很好。
在我的gradle文件中,我有:
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
...
defaultConfig {
minSdkVersion 19
targetSdkVersion 23
...
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:gridlayout-v7:23.3.0'
解決構建問題的方法就像在Build -> Clean Project
下Build -> Clean Project
一樣簡單(且有些尷尬)。 這解決了我關於應用程序無法構建的問題。
現在,我也陷入了在“設計”視圖中找不到GridLayout類的困境。 我發現的解決方案是使“ File -> Invalidate Caches / Restart
使緩存File -> Invalidate Caches / Restart
下的緩存File -> Invalidate Caches / Restart
( 注意 :這將清除您在Android Studio中的本地歷史記錄)。 並在重新啟動后,正確找到GridLayout類。
如果上述問題仍然存在,則可以將RecyclerView
與GridLayoutManager
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.