【发布时间】:2012-11-28 09:21:09
【问题描述】:
我从 NDK 示例中的 hello-gl2 示例构建了 FAT APK。 它有 2 个文件夹 armeabi 和 armeabi-v7a
我添加了以下方法
JNIEXPORT jstring JNICALL Java_com_android_gl2jni_GL2JNILib_status(JNIEnv * env, jobject obj)
{
const char * result = "Hop";
#ifdef __ARM__
result = "__ARM__";
#endif
#ifdef __ARM_ARCH_5TE__
result = "__ARM_ARCH_5TE__";
#endif
#ifdef __ARM_ARCH_7A__
result = "__ARM_ARCH_7A__";
#endif
return env->NewStringUTF(result);
}
当应用程序运行时,它会调用该方法并在弹出对话框中显示返回值。
当我在具有 ARMv7 CPU 的设备上运行应用程序时,我收到 __ARM_ARCH_5TE__ 消息而不是 __ARM_ARCH_7A__
然后我删除APK中的armeabi文件夹并重新安装APK。我看到__ARM_ARCH_7A__消息
如果我只编译 armeabi-v7a APK,我会看到 __ARM_ARCH_7A__,但它在 ARMv6 设备上不起作用。
我希望编译将在 ARMv7 CPU 上运行 armeabi-v7a lib 和在 ARMv6 CPU 上运行 armeabi 的 FAT APK。
我做错了什么或错过了什么?
【问题讨论】:
标签: android android-ndk arm armv7