Android Studio中某些C++代码的NDK构建错误

vi4fp9gy  于 2023-05-15  发布在  Android
关注(0)|答案(3)|浏览(125)

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

Error:Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
java.io.IOException: Failed to delete E:\startUpCode\OpenCvDemo\NDKTest\app\build\intermediates\transforms\stripDebugSymbol\debug\folders\2000\1f\main\lib\mips

这是我的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());
    }
}

如何修复此错误?我哪里做错了?

ajsxfq5m

ajsxfq5m1#

尝试手动删除E:\startUpCode\OpenCvDemo\NDKTest\app\build\intermediates。然后再尝试构建。

uqdfh47h

uqdfh47h2#

我已经遇到过这个问题,你的代码中没有任何问题,所以请检查以下几点:
1.转到您的项目并检查它是否创建了jnilibs或您在Gradle中命名的任何内容NDK_LIBS_OUT
1.检查应用Gradle文件中的任务ndkBuild及其位置
1.清理您的项目,如果尚未创建,请重新生成它

cyej8jka

cyej8jka3#

我也一直面临着同样的问题,关于NDK在我的项目,因为我已经进口下载的项目。
为了解决这个问题我被困了一个星期。然后我创建了一个新项目,并将库和所有文件添加到这个新项目中,并构建该项目。
我成功地完成了我的项目。

相关问题