2011-12-18 8 views
15

Tengo un problema con esta tarea simple durante las últimas dos horas.Cómo especificar el directorio para NDK_MODULE_PATH

He NDK-módulos de directorio en la raíz de mi proyecto Android y en mi carpeta de Android.mk JNI He siguientes

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 
NDK_MODULE_PATH := $(LOCAL_PATH)/../ndk-modules 
... 
$(call import-module,mymodule) 

Cuando construyo el archivo de mk, llegué

Android NDK: /MyApp/jni/Android.mk: Cannot find module with tag 'mymodule' in import path  
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?  

¿Qué estoy haciendo mal aquí? ¿Cómo puedo especificar la ruta correctamente?

ACTUALIZACIÓN:

La especificación era correcta. Tuve un problema en el directorio mymodule. Perdón por la confusion.

Respuesta

26

NDK_MODULE_PATH debe estar en su camino . Yo quería que lo especifique en mi archivo Android.mk por lo que añade esta línea antes de la línea de importación-módulo:

$(call import-add-path,my_relative_path) 
+3

¿Puedes elegir a qué te refieres con -add-path y my_relative_path –

+0

como este '' '$ (invocar import-add-path,/home/bluemix/tmp/android-ffmpeg-tutorial01-master/jni) $ (llame al módulo de importación, ffmpeg-2.6.2/android/arm) '' ' –

+0

revise la implementación siguiente. Tiene mucho más sentido https://github.com/julienr/protobuf-android – CoDe

1

$ (llamada de importación-módulo, mimodulo) buscará $ NDK_MODULE_PATH/mimodulo, es posible establecer la ruta a nivel superior del proyecto o crear una carpeta mimodulo llamado bajo NDK-módulos

+0

Si su Android.mk está en prj/JNI, a continuación, $ LOCAL_PATH/.. debería ser la parte superior. – pinxue

3

En mi caso, me fijo mediante la realización de búsquedas de NDK:

$NDK_MODULE_PATH/module_name/Android.mk 

pero mi "module_name" es un proyecto de Eclipse, donde se encuentra bajo Android.mk:

$NDK_MODULE_PATH/module_name/jni/Android.mk 

Así NDK no lo encuentra. Lo arreglé por:

  1. Mueva module_name/jni/* a "somewhere/module_name".
  2. En Android.mk:

    $(call import-add-path, /path/to/somewhere) 
    $(call import-module,module_name) 
    
Cuestiones relacionadas