2015-04-28 58 views
0

我正試圖從sources構建android adb工具。由於檔案Android.mk呈現,我正在運行ndk-build工具來構建它。但不幸的是我遇到以下錯誤:如何使用Android NDK構建主機靜態庫?

/Users/user/Documents/dev/tmp/adb/jni/Android.mk:95: /softdev/android-ndk-r10c/build/core/build-host-static-library.mk: No such file or directory 
/Users/user/Documents/dev/tmp/adb/jni/Android.mk:183: /softdev/android-ndk-r10c/build/core/build-host-executable.mk: No such file or directory 
Android NDK: Trying to define local module 'adbd' in /Users/user/Documents/dev/tmp/adb/jni/Android.mk.  
Android NDK: But this module was already defined by /Users/user/Documents/dev/tmp/adb/jni/Android.mk.  
/softdev/android-ndk-r10c/build/core/build-module.mk:34: *** Android NDK: Aborting. . Stop. 

我檢查文件(build-host-*-*.mk)缺席出於某種原因。我在某人的git repo中發現了它們,但它是用於Windows的。複製build-host-*-*.mk我的本地文件夾NDK後,我得到另一個錯誤:

Android NDK: /Users/user/Documents/dev/tmp/adb/jni/Android.mk:adb: Unknown LOCAL_MODULE_CLASS value: HOST_STATIC_LIBRARY  
/softdev/android-ndk-r10c/build/core/build-module.mk:29: *** Android NDK: Aborting . Stop. 

如此看來,只是複製的文件是不夠的。我如何使它建成?

+1

我在這個github倉庫中發現了獨立版本的adb工具:https://github.com/olunx/adb可以使用autotools – 4ntoine

回答

1

adb是一個主機工具(可在PC上運行,而不是在Android設備上運行),NDK不支持構建主機可執行文件。它確實提供了一些存根,但該功能從未完全實現。

你鏈接到的git repo不是官方的NDK r7b,而是添加了主機目標支持的修補版本。這不僅僅包括一個文件 - 請參閱完整比較here

您將需要應用此修補程序(或將所有已修改的腳本)複製到本地NDK設置。如果您運行的是r7b以外的NDK版本,則可能需要進行一些額外的修改。

另請參閱我的question,其中我基本上遇到了同樣的問題。