我从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);
}
当app运行时,它会调用该方法并在弹出对话框中显示返回值。
当我在装有ARMv7 CPU的设备上运行app时,我收到__ARM_ARCH_5TE__
消息,而不是__ARM_ARCH_7A__
然后我删除APK中的armeabi
文件夹并重新安装APK。我看到__ARM_ARCH_7A__
消息
如果我仅编译armeabi-v7a
APK,那么我会看到__ARM_ARCH_7A__
,但它无法在ARMv6设备上运行。
我希望编译FAT APK,它将在ARMv7 CPU上运行armeabi-v7a
lib,在ARMv6 CPU上运行armeabi
。
我做错了什么或想做什么?
答案 0 :(得分:1)