41

我正在尝试运行 NDK 来编译本机代码以在 Atom(x86) 处理器和 ARM 上运行。无论我如何设置 APP_ABI,NDK 都在生成 armeabi 库。即使我只为 APP_ABI 放置 x86。并且文件大小始终相同。这是我的 Application.mk 文件:

LOCAL_PATH := $(call my-dir)
APP_ABI := x86
include $(CLEAR_VARS)

LOCAL_LDLIBS    := -L$(SYSROOT)/usr/lib -llog 
LOCAL_MODULE    := myjni-jni
LOCAL_SRC_FILES := myjni-jni.c

include $(BUILD_SHARED_LIBRARY)

不管我在 APP_ABI 之后放了什么,我都会得到 armeabi 并且它的大小总是一样的。这里有什么问题?我正在使用最新的 NDK。

4

3 回答 3

74

您应该将 APP_ABI 变量放在Application.mk文件而不是Android.mk文件中。

它写在 NDK 的文档中(docs/CPU-ARCH-ABIS.html 文件)。

于 2012-04-11T00:49:14.173 回答
35

如果您没有Application.mk文件,请jniproject root.

project_root/jni/Application.mk

添加目标编译平台:

APP_ABI := x86

或平台:

APP_ABI := armeabi armeabi-v7a x86 mips

于 2013-03-21T23:54:50.937 回答
4

您也可以APP_ABI直接设置为ndk-buildshell 命令:

ndk-build APP_ABI=x86
于 2016-02-19T01:18:02.167 回答