Android FAT APK: как заставить использовать ARMv7

Я собрал FAT APK из примера hello-gl2 из примеров NDK. В нем 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, я получаю сообщение __ARM_ARCH_5TE__ вместо __ARM_ARCH_7A__

Затем я удаляю папку armeabi в APK и переустанавливаю APK. Я вижу __ARM_ARCH_7A__ сообщение

Если я скомпилирую только armeabi-v7a APK, то я увижу __ARM_ARCH_7A__, и он не работает на устройстве ARMv6.

Я хочу скомпилировать FAT APK, который будет запускать armeabi-v7a lib на процессоре ARMv7 и armeabi на процессоре ARMv6.

Что я делаю неправильно или чего-то не хватает?


person Max    schedule 10.12.2012    source источник


Ответы (1)


Я предполагаю, что вы получаете эту ошибку Android ICS:

person Mārtiņš Možeiko    schedule 11.12.2012