xjo*_*ssy 6 android stl android-ndk android-studio android-gradle-plugin
我在将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)
Run Code Online (Sandbox Code Playgroud)
忽略.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
}
Run Code Online (Sandbox Code Playgroud)
此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
Run Code Online (Sandbox Code Playgroud)
小智 3
如果您使用共享变体,则需要在 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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5007 次 |
| 最近记录: |