skia方面的问题,如何让编译的动态库在多个sdk版本上都能运行?

楚休红 发布于 2014/05/28 13:36
阅读 1K+
收藏 0

@fjlikun 你好,想跟你请教个问题:我用android4.4的源码和skia源码编译的动态库,android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=Test
MY_LOCAL_LIB:=D:/360Downloads/lib/
LOCAL_CPP_EXTENSION:=.cpp
LOCAL_SRC_FILES:=Test1.cpp
LOCAL_CXXFLAGS :=
LOCAL_C_INCLUDES := \
D:/cygwin/home/Android4.4/external/skia/include/core \
D:/cygwin/home/Android4.4/external/skia/include/config \
D:/cygwin/home/Android4.4/frameworks/base/include \
D:/cygwin/home/Android4.4/external/skia/include/lazy \
D:/cygwin/home/Android4.4/system/core/include \
D:/cygwin/home/Android4.4/frameworks/base/core/jni/android/graphics \
D:/cygwin/home/Android4.4/dalvik/libnativehelper/include
#LOCAL_LDLIBS := -llog -lsgl -lskia -lskiagl -ljnigraphics -landroid_runtime \
#-L$(MY_ANDROID_SOURCE)/out/target/product/generic/system/lib/
LOCAL_LDFLAGS := \
$(MY_LOCAL_LIB)liblog.so \
$(MY_LOCAL_LIB)libjnigraphics.so \
$(MY_LOCAL_LIB)libskia.so \
$(MY_LOCAL_LIB)libandroid_runtime.so
include $(BUILD_SHARED_LIBRARY)
c++代码就是简单调用skia绘图的方法画线,这个可以编译成动态库,在4.4的sdk上运行也好使,换低版本的sdk就画不出来啦,这个怎么怎么解决?怎么也得2.3到4.4的sdk都可以用啊

加载中
0
间歇性神经病患者
间歇性神经病患者

LOCAL_LDFLAGS 记得这个是链接的一些参数,不是库来的

#LOCAL_LDLIBS := -llog -lsgl -lskia -lskiagl -ljnigraphics -landroid_runtime \
#-L$(MY_ANDROID_SOURCE)/out/target/product/generic/system/lib/

这两行让注释了,你已经有源码了,就把库指向源码下面丰应的库去吧

动态库是跟CPU有关的,你的两个手机会是同一个CPU架构?

间歇性神经病患者
间歇性神经病患者
这个文件不大会写,都是拷贝别人改的,-L应该是用来指定查找的目录,lib的搜索目录应该包括当前路径,NDK自带的lib,可以在这加上源码的库路径
楚休红
LOCAL_LDLIBS := -llog -lsgl -lskia -lskiagl -ljnigraphics -landroid_runtime 这句中local_LDLIBS我一直不太理解,对应库文件是哪里的库文件?是ndk中的,还是android源码的?而且也不写明路径,让我想不明白啊
返回顶部
顶部