[問題] R.java 與 library 的順序

看板AndroidDev作者 (我要加入劍道社!)時間13年前 (2012/03/21 10:30), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
最近為了整理亂七八糟的 source tree 把一項 android project 的目錄移動到另一個地方 然後在 eclipse 中重新匯入、設定 library (這個 project 用了另外四個 library project 裡面都包含 resource) 然後就爆炸了 一執行就 force close logcat 出現 android.content.res.Resources$NotFoundException: Resource ID #0x7f050030 is not valid 但打開 apk 後確認 resource 是有在裡面的 google 了一陣子,試著使用 eclipse 中的 clean project 或是直接砍掉 R.java 讓它重新產生等等的方法 全部都沒有用 後來我挖出了可以執行的舊版程式送去 decompile 檢查他的 R.java 發現舊版的 R.java 內容與新版完全不同! 比如說舊版可能是這樣: public static final class R { public static final class color { public static final int transparent = 0x7f060000; } ... public static final class string { public static final int app_name = 0x7f040000; ... } } 新版變成了這樣: public static final class R { public static final class color { public static final int transparent = 0x7f040000; } ... public static final class string { public static final int app_name = 0x7f050000; ... } } 也就是 resource type 的排列順序就錯了,產生出來的 id 也是錯的 最後我打開 project property 調整了 library project 的順序 結果...結果!結果就正確了 (怒 請問: 1. 這是 eclipse ADT 的 bug 嗎? 2. 如果不是 bug,那我的 library project 應該如何排序才不會發生這種問題? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.3.139

03/21 11:03, , 1F
這真的是惡夢.... orz....
03/21 11:03, 1F

03/21 11:07, , 2F
之前也被這種鬼問題卡很久,都是移動專案位置時出錯
03/21 11:07, 2F

03/21 15:26, , 3F
之前聽說把bin gen這些自動生成的資料夾砍掉讓它重作可行
03/21 15:26, 3F

03/21 16:09, , 4F
上述方法也試過喔 依然是錯的 XD
03/21 16:09, 4F

03/21 16:20, , 5F
這個問題無解,不過我當初全面clean(含lib project)可行
03/21 16:20, 5F

03/21 16:21, , 6F
我猜(不確定)是因為目標專案產生res id的時候 發現跟
03/21 16:21, 6F

03/21 16:21, , 7F
其中一個專案的某resource衝到,所以改assign另外一個
03/21 16:21, 7F

03/21 23:59, , 8F
其實是有解的 你可以用getIdentifier先拿id
03/21 23:59, 8F
文章代碼(AID): #1FQJrDaU (AndroidDev)