android android-ndk cygwin cocos2d-x

Android NDK: ADVERTENCIA: APP_PLATFORM android-9 es más grande que android: minSdkVersion 8



android-ndk cygwin (3)

La razón detrás de la advertencia / error es que quiere hacerle saber que está compilando el código nativo para una plataforma de destino superior a su "mínimo" especificado en el manifiesto. Básicamente se trata de ''tener cuidado con el uso de funciones que no son compatibles con el sistema operativo anterior. El cambio Application.mk está bien y no debería tener ningún efecto adverso real en el código compilado.

~~ Soluciones alternativas.

Para r8 puede cambiar la configuración de compilación para considerarla una advertencia en lugar de un error. Esto funcionó en r8 pero es solo una corrección parcial en r9.

Para NDK rev r9 (funciona en otras revoluciones también, pero la ubicación / número de línea puede diferir)

$ {NDK} /build/core/add-application.mk línea 138

agregue "#" al comienzo de la línea.

# $ (call __ndk_info, ADVERTENCIA: APP_PLATFORM $ (APP_PLATFORM) es más grande que android: minSdkVersion $ (APP_MIN_PLATFORM_LEVEL) en $ (APP_MANIFEST))

Un carácter, corrección de 30 segundos ... ve a depurar el código nativo.

Recibo la siguiente advertencia al compilar mi proyecto cocos2d-x con cygwin.

`/cygdrive/e/project/MyGame/proj.android ` /cygdrive/e/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING:APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml

Estoy usando la versión NDK r8e. Mi versión mínima de SDK es 8 en mi AndroidManifest.xml pero no especifico APP_PLATFORM como android-9 en ninguna parte. ¿Cómo puedo cambiar esto a 8?

¿Alguien puede decirme cómo resolver esta advertencia ya que creo que esto puede causar problemas?


Parece que estás usando Android-9 como tiempo de ejecución. Puede poner APP_PLATFORM := android-8 en su archivo Application.mk y la advertencia desaparecerá.


Si desea compilar su biblioteca nativa para una versión más nueva que su minSdkVersion, puede simplemente configurar Eclipse para cambiar el error a una advertencia. Esto puede ser útil si sabe que su código Java NO va a cargar la biblioteca nativa en versiones anteriores de Android. (Advertencia: si no lo garantiza, la carga de su biblioteca nativa en versiones de Android anteriores a las especificadas en su APP_PLATFORM puede fallar y bloquear la aplicación si hay enlaces de biblioteca dinámica insatisfechos, por ejemplo, si su APP_PLATFORM es 9 y utiliza OpenSLES, esto fallará si intentas usar JNI en Android 2.2 o anterior. Pero mientras tu lado de Java lo sepa y se asegure de que loadLibrary nunca se invoque en versiones anteriores, entonces estás bien).

Puede cambiar la configuración de Eclipse siguiendo estos pasos, proporcionados por alguien de Google (en este enlace ) (pero también, vea mi nota IMPORTANTE a continuación):

En eclipse:

- Window -> Preferences -> C/C++ -> Build -> Settings - Select CDT GNU C/C++ Error Parser - In the Error Parser options at the bottom, add a new entry with the following contents: Severity: Warning Pattern: (.*?):(/d+): Android NDK: WARNING:(.*) File: $1 Line: $2 Description: $3

¡IMPORTANTE! Lo que el chico de Google no notó es que también necesitas usar el botón "Subir" en la configuración para mover tu nueva regla a la parte superior porque de lo contrario algunas otras reglas más genéricas la eclipsarán y no funcionará.