Android修改標準鍵值後編譯錯誤
阿新 • • 發佈:2018-11-03
問題背景:
在工作中遇到一個問題,需要在KeyEvent.java新增一個鍵值148,作刪除鍵用,於是打算將Android原有148鍵KEYCODE_NUMPAD_4修改為一個其他的鍵值。將KEYCODE_NUMPAD_4的Keycode修改為1480後make update-api後編譯還是會出現錯誤:
out/target/common/obj/PACKAGING/public_api.txt:27490: error 17: Field android.view.KeyEvent.KEYCODE_POUND has changed value from 148 to 1480
***** *************************
You have tried to change the API from what has been previously released in
an SDK. Please fix the errors listed above.
******************************
問題原因:
用make update-api後會修改framework/base/api/current.txt檔案的對應鍵值,但是由於此鍵值與prebuilts/sdk/api/目錄下的api有衝突,所以會導致編譯失敗。
解決辦法:
在prebuilts/sdk/api目錄下找到自己Android版本對應的api level的介面,修改對應的衝突鍵值,然後重新編譯系統即可。(比如說我用的是4.4.2kitkat版本,我將prebuilts/sdk/api/19.txt對應的KEYCODE_NUMPAD_4值修改為1480)