2015-04-28 57 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,其中我基本上遇到了同样的问题。