Android NoSuchFieldError

前幾天在開發(fā)的時候,把一個library搬到了一個新的工程中,然后在主應(yīng)用模塊中調(diào)用library的Activity,發(fā)現(xiàn)出現(xiàn)了NoSuchFieldError:

error.png

然而,查看代碼明明是沒有問題的,layout文件存在且id正確,R文件也正常。后來在StackOverFlow上找到了答案,原因是主應(yīng)用模塊和library里面的layout文件重名了,把其中一個名字改了就正常運行。后來寫了個小demo重現(xiàn)了錯誤并分析了一下打包的apk:

主模塊和library模塊里新建相同名字的layout文件,但兩者不同,如圖所示

  • 主模塊的文件


    list1.png
  • library的文件


    list2.png

最后在打包生成的apk文件中,這個名字的layout文件只有一個,并且是主模塊的layout文件:

result.png

另外,apk文件中的resources.arsc文件中的id確實沒有l(wèi)ibrary中定義的id

結(jié)論

Android的打包機制決定了不能有同名的layout文件,故只能避免模塊之間文件的重名

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,177評論 25 708
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,362評論 0 17
  • 這周的話題是安全感。 百分之百的安全,帶來的是百分之百的束縛。不學(xué)會拋棄一部分,就沒有機會和他人合作;不選擇放...
    happ_iness閱讀 740評論 0 50
  • 第一天讀居然漏掉了序,太急了。 沒提前準備好,明顯電腦輸入修改要比手機敲字高效; 熬夜更耽誤時間 (周末補)
    zdw301閱讀 182評論 0 0
  • 今天在思考寫什麼的時候,無意間點開了一個公眾號,看到一篇關(guān)於植物的文章,清新淡雅的文風(fēng)瞬間被吸引了,興奮之餘還發(fā)自...
    醫(yī)外習(xí)醫(yī)閱讀 231評論 0 1

友情鏈接更多精彩內(nèi)容