我从 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__
然后我删除armeabi
APK中的文件夹并重新安装APK。我看到__ARM_ARCH_7A__
消息
如果我只编译armeabi-v7a
APK,那么我会看到__ARM_ARCH_7A__
它在 ARMv6 设备上不起作用。
我希望编译将armeabi-v7a
在 ARMv7 CPU 和 ARMv6 CPU 上运行 lib 的FAT APK armeabi
。
我做错了什么或错过了什么?