Android NoSuchFieldError解決辦法
Android NoSuchFieldError解決辦法
前幾天在開發(fā)的時候,把一個library搬到了一個新的工程中,然后在主應(yīng)用模塊中調(diào)用library的Activity,發(fā)現(xiàn)出現(xiàn)了NoSuchFieldError:
然而,查看代碼明明是沒有問題的,layout文件存在且id正確,R文件也正常。后來在StackOverFlow上找到了答案,原因是主應(yīng)用模塊和library里面的layout文件重名了,把其中一個名字改了就正常運行。后來寫了個小demo重現(xiàn)了錯誤并分析了一下打包的apk:
主模塊和library模塊里新建相同名字的layout文件,但兩者不同,如圖所示
主模塊的文件
library的文件
最后在打包生成的apk文件中,這個名字的layout文件只有一個,并且是主模塊的layout文件:
另外,apk文件中的resources.arsc文件中的id確實沒有l(wèi)ibrary中定義的id
結(jié)論
Android的打包機(jī)制決定了不能有同名的layout文件,故只能避免模塊之間文件的重名
相關(guān)文章
Android SpannableString設(shè)置超鏈接、顏色、字體等屬性
這篇文章主要介紹了Android SpannableString設(shè)置超鏈接、顏色、字體等屬性的相關(guān)資料,需要的朋友可以參考下2017-01-01深入理解Android熱修復(fù)技術(shù)原理之代碼熱修復(fù)技術(shù)
在各種 Android 熱修復(fù)方案中,Andfix的即時生效令人印象深刻,它稍顯另類, 并不需要重新啟動,而是在加載補(bǔ)丁后直接對方法進(jìn)行替換就可以完成修復(fù),然而它的使用限制也遭遇到更多的質(zhì)疑2021-06-06Android編程實現(xiàn)讀取工程中的txt文件功能
這篇文章主要介紹了Android編程實現(xiàn)讀取工程中的txt文件功能,結(jié)合實例形式詳細(xì)分析了Android讀取txt文件的原理、操作步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-02-02Android Jetpack 狠活Lifecycles與LiveData使用詳解
這篇文章主要為大家介紹了Android Jetpack 狠活Lifecycles與LiveData使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Android使用Spinner實現(xiàn)城市級聯(lián)下拉框
這篇文章主要為大家詳細(xì)介紹了Android使用Spinner實現(xiàn)城市級聯(lián)下拉框,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型及CXF發(fā)布的webservice詳細(xì)介紹
這篇文章主要介紹了 Android通過ksoap2傳遞復(fù)雜數(shù)據(jù)類型詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-02-02Android中的Shape和Selector的結(jié)合使用實例
這篇文章主要介紹了Android中的Shape和Selector的結(jié)合使用實例,本文直接給出實例代碼,需要的朋友可以參考下2015-06-06Android利用Dom對XML進(jìn)行增刪改查操作詳解
使用DOM進(jìn)行增刪改查,這個是DOM的優(yōu)勢所在,其實代碼很簡單,不需要過多的解釋,下面這篇文章主要給大家介紹了關(guān)于Android利用Dom對XML進(jìn)行增刪改查操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-01-01Android自定義View實現(xiàn)水平帶數(shù)字百分比進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android自定義View實現(xiàn)水平帶數(shù)字百分比進(jìn)度條,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12