天天看點

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)

繼續閱讀