1. 程式人生 > >Android修改標準鍵值後編譯錯誤

Android修改標準鍵值後編譯錯誤

問題背景:

在工作中遇到一個問題,需要在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)