Android NDK: ADVERTENCIA: APP_PLATFORM android-9 es más grande que android: minSdkVersion 8
Estoy recibiendo 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.
- ¿Cómo configurar Tesseract en Eclipse para el desarrollo de Android?
- Cygwin para la programación Android-NDK
- Android-ndk - script de compilación simple para ndk-build para cygwin
- ¿Cómo puedo solucionar esta excepción fatal?
- ¿Puedo utilizar las librerías de FFmpeg en una aplicación de Android?
¿Puede alguien decirme cómo resolver esta advertencia, ya que creo que esto puede causar problemas.
- No se puede usar ndk-build en Cygwin
- APV lector pdf. Problemas de instalación, descompresión y biblioteca nativa
- Ejecutar script de shell en Gradle
- Compilación de la biblioteca de Android-OpenCV con Cygwin
- No se pueden incluir archivos de encabezado STL con Android NDK r5
- arm-linux-androideabi-g ++. exe: CreateProcess: No hay tal error de archivo o directorio
- Cómo compilar ffmpeg-2.2.2 en windows con cygwin y android ndk r9c
- Configuración de la variable Cygwin Path para encontrar Android NDK
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á.
La razón detrás de la advertencia / error es que le permite saber que está compilando el código nativo para una plataforma de destino superior a su "mínimo" spcefied en el manifiesto. Es básicamente diciendo 'tenga cuidado con el uso de características no compatibles con el sistema operativo más antiguo. 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 sólo una corrección parcial en r9.
Para NDK rev r9 (funciona en otras revs también, pero location / line # puede variar)
$ {NDK} /build/core/add-application.mk línea 138
Agregue "#" al inicio de la línea.
# $ (Llamada __ndk_info, WARNING: APP_PLATFORM $ (APP_PLATFORM) es mayor que android: minSdkVersion $ (APP_MIN_PLATFORM_LEVEL) en $ (APP_MANIFEST))
Un carácter, arreglo de 30 segundos … va depurar el código nativo.
Si desea compilar su biblioteca nativa para una versión más reciente que su minSdkVersion, sólo puede 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 garantiza eso, cargar su biblioteca nativa en versiones de Android anteriores a lo especificado en APP_PLATFORM puede fallar y bloquear la aplicación si hay enlaces de biblioteca dinámica no satisfechos – 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 parte de Java sepa esto y se asegure de que loadLibrary nunca se llame a versiones anteriores, entonces estás bien.)
Puede cambiar la configuración de Eclipse siguiendo estos pasos, proporcionada 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 necesita usar el botón "Subir" en la configuración para mover su nueva regla a la parte superior porque de lo contrario algunas otras reglas más genéricas le eclipsan y no funciona.