我正在开发使用一些 Android 私有 API 的应用程序。我将它构建为为我的手机配置的完整 Android (CM10) 源的一部分。生成的二进制文件在该设备上运行良好,但在具有相同 Android 版本的其他设备上会引发分段错误。这不是缺少 API 的问题,因为即使是以这种方式编译的简单的 hello world 也会引发 Segfault。这是一个示例代码:
你好-cmd.cpp
#include<stdio.h>
int main(int argc, char* argv[]) {
printf("Hello Command Line!");
return 0;
}
安卓.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-cmd
LOCAL_SRC_FILES := hello-cmd.cpp
include $(BUILD_EXECUTABLE)
当我使用 Android NDK 构建以下代码时,它是可移植的。当我在 android 源代码中构建它时,它不是。
我想问题是链接器配置,但我不知道如何调试或修复它。