NDK在Android Studio中为某些C 代码构建错误



我是NDK的新手,所以我在构建下面的项目时会遇到错误:

Error:Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
java.io.IOException: Failed to delete E:startUpCodeOpenCvDemoNDKTestappbuildintermediatestransformsstripDebugSymboldebugfolders20001fmainlibmips

这是我的C 代码:

#include <com_nickworld_ndktest_NativeClass.h>
JNIEXPORT jstring JNICALL Java_com_nickworld_ndktest_NativeClass_getMessageFromJNI
    (JNIEnv *env, jclass obj){
return env->NewStringUTF("This is the message from JNI");

文件 android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := com_nickworld_ndktest_NativeClass.cpp
LOCAL_LDLIBS += -llog
LOCAL_MODULE := MyLib
include $(BUILD_SHARED_LIBRARY)

文件 application.mk

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-16

文件 mainActivity.java

public class MainActivity extends AppCompatActivity {
    static {
        System.loadLibrary("MyLibs");
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ((TextView) findViewById(R.id.txtView)).setText(NativeClass.getMessageFromJNI());
    }
}

如何解决此错误?我在哪里做错?

尝试手动删除E:startUpCodeOpenCvDemoNDKTestappbuildintermediates。然后尝试再次构建。

我已经遇到了这个问题,并且您的代码中没有任何问题,因此请查看以下要点:

  1. 转到您的项目,检查它是创建jnilibs还是您在gradle中命名的任何名称 ndk_libs_out

  2. 检查您的任务ndkbuild 在您的应用程序gradle文件及其位置

  3. 清洁您的项目并再次构建,如果尚未创建它

我在项目中的NDK也与导入下载项目相同的问题。

我被困了一个星期来解决这个问题。然后,我创建了一个新项目,并将库和所有文件添加到了这个新项目并构建项目。

我成功地构建了我的项目。

最新更新