我有一个skia共享库,由skia源代码生成,我想用它在我的cpp文件中绘制一些东西。这个项目在android M和N上运行良好,但它在android L上崩溃。
这是我的CMakeList.txt
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_VERBOSE_MAKEFILE on)
set(libs "${CMAKE_SOURCE_DIR}/src/main/jniLibs")
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/android)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/atlastext)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/c)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/codec)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/config)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/core)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/effects)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/encode)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/gpu)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/pathops)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/ports)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/private)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/svg)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/utils)
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/views)
#--------------------------------------------------- import ---------------------------------------------------#
add_library(libmyskia SHARED IMPORTED )
set_target_properties(libmyskia PROPERTIES
IMPORTED_LOCATION "${libs}/${ANDROID_ABI}/libmyskia.so")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11 -fexceptions -fno-rtti")
add_library(eskia
SHARED
src/main/cpp/eskia.cpp )
find_library( android-lib
android)
target_link_libraries(eskia
libmyskia
${android-lib}
)
我在我的活动中加载了库:
static {
System.loadLibrary("myskia");
System.loadLibrary("eskia");
}
以下是崩溃信息,有人见过吗?
04-02 16:46:55.319 21449-21449/com.eastedu.skiaandroid E/art: dlopen("/data/app/com.eastedu.skiaandroid-2/lib/arm/libeskia.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "_ZTVN10__cxxabiv117__class_type_infoE" referenced by "libeskia.so"...
04-02 16:46:55.319 21449-21449/com.eastedu.skiaandroid D/AndroidRuntime: Shutting down VM
04-02 16:46:55.319 21449-21449/com.eastedu.skiaandroid E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.eastedu.skiaandroid, PID: 21449
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "_ZTVN10__cxxabiv117__class_type_infoE" referenced by "libeskia.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:383)
at java.lang.System.loadLibrary(System.java:997)
at com.eastedu.skiaandroid.MainActivity.<clinit>(MainActivity.java:17)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1606)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535)
at android.app.ActivityThread.access$1200(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1387)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5689)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at enter code herecom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)