我想用android ndk编译我的代码。我正在使用Windows机器。 我的android.mk如下。
LOCAL_PATH := $(call my-dir)
SHELL := PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin /bin/bash
include $(CLEAR_VARS)
LOCAL_MODULE := streamer_native_manager
LOCAL_SRC_FILES := streamer-native-manager.c gstrtpchannels.c skyrtpL16pay.c skyrtpL16depay.c
LOCAL_C_INCLUDES := gstrtpchannels.h skyrtpL16pay.h skyrtpL16depay.h
LOCAL_SHARED_LIBRARIES := gstreamer_android
LOCAL_LDLIBS := -llog -landroid
LOCAL_ARM_MODE := arm
include $(BUILD_SHARED_LIBRARY)
在build.gradle
中,我进行了以下配置,
sourceSets {
main {
jni.srcDirs = []
jniLibs.srcDir 'src/main/libs'
java.srcDirs += 'src/main/jni/src'
assets.srcDirs += 'src/main/jni/assets'
}
}
在同一档案中进行编译,
task nativeBuild(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.ndkFolder
commandLine "$ndkDir\\ndk-build.cmd",
'-C', file('src\\main\\jni').absolutePath,
'-j', Runtime.runtime.availableProcessors(),
'all'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = project.plugins.findPlugin('com.android.application').sdkHandler.ndkFolder
commandLine "$ndkDir\\ndk-build.cmd",
'-C', file('src\\main\\jni').absolutePath,
'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn nativeBuild
}
但是当我清理项目时,我收到了以下错误,
`*** Android NDK:正在中止。 。停止。 错误:任务':app:cleanNative'。
的执行失败处理'命令' AndroidSDK \ ndk-bundle \ ndk-build.cmd''完成非零退出值2`
我正在使用Windows机器,那么有人可以帮助我吗?
答案 0 :(得分:0)
这是一个新问题吗?这听起来好像开发环境没有正确设置,因为您只是清理代码。如果在构建时发生此错误,我会说要查看您的代码。但是,由于它在清洁时发生,它几乎必须是开发环境。
你最近有没有碰过你的路?
你应该确保Cygwin在路上。