gpt4 book ai didi

android - 在 Android Studio gradle 项目中使用 NDK 和 STL

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:15 29 4
gpt4 key购买 nike

我在将 STLport 链接到 Android Studio 中的 gradle 项目时遇到了问题。

使用 NDK 的 Eclipse Android 项目迁移到 Android Studio。

该项目使用STL,我有android.mk 文件内容

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := MyProject
LOCAL_SRC_FILES := jniapi.cpp renderer.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM -ljnigraphics

include $(BUILD_SHARED_LIBRARY)

gradle似乎忽略了.mk文件,我在build.gradle文件中添加了以下代码:

ndk {
moduleName "MyProject"
stl "stlport_shared"
ldLibs "log", "EGL", "android", "jnigraphics", "GLESv1_CM"
//No equivalent for the "include $(BUILD_SHARED_LIBRARY)" here
}

此gradle构建成功后,但在设备上运行应用程序会导致错误:

27446-27446/com.example.test E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libstlport_shared.so" needed by "libMyProject.so"; caused by load_library(linker.cpp:745): library "libstlport_shared.so" not found

最佳答案

如果您使用的是共享变体,则需要在 Java 代码中手动加载 STLport 共享库。如果您不需要共享变体,请改为指定 STLport_static:

ndk {
moduleName "MyProject"
stl "stlport_static"
ldLibs "log", "EGL", "android", "jnigraphics", "GLESv1_CM"
//No equivalent for the "include $(BUILD_SHARED_LIBRARY)" here
}

关于android - 在 Android Studio gradle 项目中使用 NDK 和 STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646227/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com