java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法
該問題解決辦法適用于任何類似問題。
問題的標準異常描述為:java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/gridlayout/R$styleable
今天由于項目需要,想在項目中使用GridLayout,無奈,標準庫中的GridLayout從API 21起才開始提供權重功能,于是使用了支持庫中的GridLayout,但是加入到項目中之后報出如下異常:
java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/gridlayout/R$styleable自己檢查了項目無數遍沒有解決,于是嘗試Google,無奈,翻遍了前兩頁的所有結果,都沒能解決,最后還是由百度搜索提供的國內結果將問題解決。
參考地址:http://blog.csdn.net/zhengdan66/article/details/9119653
上面的博客可以針對Eclipse的工程解決,但是在AS中有一些小的細節需要處理到,下面對這些細節做一些補充:
- 1 . 首先需要將包android-support-v7-gridlayout.jar拷入到AS的libs目錄中,然后右擊菜單選擇”as Library”。
2 . 由于需要將GridLayout的工程目錄作為AS的依賴目錄,所以需要使用Eclipse將GridLayout的工程導入,然后導出其build.gradle文件,如下圖所示:
然后工程中會出現一個build.gradle文件,如下圖所示:
3 .將以上步驟做好之后,需要在AS中將工程作為依賴工程導入到AS中:
4 .上圖所示的步驟完成之后,工程就會將GridLayout的工程導入到項目中了:
5 .最后打開app的Module配置,將GridLayout庫作為app Module的依賴庫就可以了:
做完以上這些基本上沒有問題的,但是由于個別的情況不同,需要將一些細節進行說明:
注意: appcompat-v7包的gradle依賴首選要選擇中央庫,盡量不要使用appcompat-v7文件依賴包,注意,不能同時存在兩種的appcompat-v7依賴關系,這也是不能正常運行的原因之一,gradle的依賴如下所示:
dependencies {compile fileTree(include: ['*.jar'], dir: 'libs')testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.3.0'compile files('libs/android-support-v4.jar')compile files('libs/android-support-v7-gridlayout.jar') }希望可以幫到大家,有問題請留言。
總結
以上是生活随笔為你收集整理的java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】StringBuilder类
- 下一篇: 算法工程师笔试 -剑指offer-习题详