Sto eseguendo la migrazione di una libreria Android da Eclipse ad Android Studio. In Eclipse, potrei impostare NDK_MODULE_PATH tramite Progetto> Proprietà> Risorsa> Risorse collegate> Variabili del percorso. Ma come ottengo la stessa cosa in Android Studio, rispettivamente con gradle?Come impostare NDK_MODULE_PATH in Android Studio e/o gradle?
La mia libreria viene creata fino a quando non tenta di trovare le intestazioni per un modulo in NDK_MODULE_PATH.
Ecco il messaggio di errore:
Executing tasks: [:libAndroid:compileDebugSources, :physicaloidLibrary:compileDebugSources] Configuration on demand is an incubating feature. :libAndroid:preBuild UP-TO-DATE :libAndroid:preDebugBuild UP-TO-DATE :libAndroid:checkDebugManifest :libAndroid:preDebugAndroidTestBuild UP-TO-DATE :libAndroid:preReleaseBuild UP-TO-DATE :physicaloidLibrary:compileLint :physicaloidLibrary:copyReleaseLint UP-TO-DATE :physicaloidLibrary:mergeReleaseProguardFiles UP-TO-DATE :physicaloidLibrary:preBuild UP-TO-DATE :physicaloidLibrary:preReleaseBuild UP-TO-DATE :physicaloidLibrary:checkReleaseManifest :physicaloidLibrary:prepareReleaseDependencies :physicaloidLibrary:compileReleaseAidl UP-TO-DATE :physicaloidLibrary:compileReleaseRenderscript UP-TO-DATE :physicaloidLibrary:generateReleaseBuildConfig UP-TO-DATE :physicaloidLibrary:generateReleaseAssets UP-TO-DATE :physicaloidLibrary:mergeReleaseAssets UP-TO-DATE :physicaloidLibrary:generateReleaseResValues UP-TO-DATE :physicaloidLibrary:generateReleaseResources UP-TO-DATE :physicaloidLibrary:packageReleaseResources UP-TO-DATE :physicaloidLibrary:processReleaseManifest UP-TO-DATE :physicaloidLibrary:processReleaseResources UP-TO-DATE :physicaloidLibrary:generateReleaseSources UP-TO-DATE :physicaloidLibrary:compileReleaseJava UP-TO-DATE :physicaloidLibrary:processReleaseJavaRes UP-TO-DATE :physicaloidLibrary:packageReleaseJar UP-TO-DATE :physicaloidLibrary:compileReleaseNdk UP-TO-DATE :physicaloidLibrary:packageReleaseJniLibs UP-TO-DATE :physicaloidLibrary:packageReleaseLocalJar UP-TO-DATE :physicaloidLibrary:packageReleaseRenderscript UP-TO-DATE :physicaloidLibrary:bundleRelease UP-TO-DATE :libAndroid:prepareLibAndroidGradlePhysicaloidLibraryUnspecifiedLibrary UP-TO-DATE :libAndroid:prepareDebugDependencies :libAndroid:compileDebugAidl UP-TO-DATE :libAndroid:compileDebugRenderscript UP-TO-DATE :libAndroid:generateDebugBuildConfig UP-TO-DATE :libAndroid:generateDebugAssets UP-TO-DATE :libAndroid:mergeDebugAssets UP-TO-DATE :libAndroid:generateDebugResValues UP-TO-DATE :libAndroid:generateDebugResources UP-TO-DATE :libAndroid:mergeDebugResources UP-TO-DATE :libAndroid:processDebugManifest UP-TO-DATE :libAndroid:processDebugResources UP-TO-DATE :libAndroid:generateDebugSources UP-TO-DATE :libAndroid:compileDebugJava UP-TO-DATE :libAndroid:compileDebugNdk AGPBI: {"kind":"SIMPLE","text":"/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.c:30:18: fatal error: dmtx.h: No such file or directory","position":{},"original":"/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.c:30:18: fatal error: dmtx.h: No such file or directory"} AGPBI: {"kind":"SIMPLE","text":" #include \u003cdmtx.h\u003e","position":{},"original":" #include \u003cdmtx.h\u003e"} AGPBI: {"kind":"SIMPLE","text":" ^","position":{},"original":" ^"} AGPBI: {"kind":"SIMPLE","text":"compilation terminated.","position":{},"original":"compilation terminated."} AGPBI: {"kind":"SIMPLE","text":"make: *** [/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/Rhodo//home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.o] Error 1","position":{},"original":"make: *** [/home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/build/intermediates/ndk/debug/obj/local/arm64-v8a/objs/Rhodo//home/rhodo/dev/android/studio/LibAndroidGradle/libAndroid/src/main/jni/imageprocessing/dmtxutil.o] Error 1"} FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':libAndroid:compileDebugNdk'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/opt/android-ndk/ndk-build'' finished with non-zero exit value 2 * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 2.763 secs
Tutte le idee su questo?
penso che mi hai ragione, ma tanto per chiarire: ci sono usi diversi del termine "modulo", un modulo sotto $ NDK_MODULE_PATH è un modulo/libreria C/C++. Ho creato un modulo gradle nel mio progetto di libreria. Ma i makefile "Android.mk" vengono ignorati. Ci sono diversi post su Internet relativi a questo argomento. Ma se uno si basa su questi makefile, una build della libreria C/C++ potrebbe non riuscire. E.g. "libdmtx": ho solo bisogno di aggiungere "dmtx.c" al makefile e si costruisce con successo. Senza makefile ndk-build prova a creare ogni file in quella cartella e la compilazione fallisce. – rhodo