目前我试验了:
1、C源码用ndk生成一个so库是可以在应用程序运行的。(这个就是NDK自带的sample里面hello-jni那个例子)
2、C源码+静态库用ndk生成so库是可以的(这个就是NDK自带的sample里面two-lib那个例子)
3、C源码+动态库怎么试都不行,高人可以把two-lib那个例子里面Android.mk文件中libtwolib-first那个模块由静态库改为动态库试一下。
那位高人帮忙解决下吧,非常感谢,快要过年了,大家都不容易啊
1、C源码用ndk生成一个so库是可以在应用程序运行的。(这个就是NDK自带的sample里面hello-jni那个例子)
2、C源码+静态库用ndk生成so库是可以的(这个就是NDK自带的sample里面two-lib那个例子)
3、C源码+动态库怎么试都不行,高人可以把two-lib那个例子里面Android.mk文件中libtwolib-first那个模块由静态库改为动态库试一下。
那位高人帮忙解决下吧,非常感谢,快要过年了,大家都不容易啊
LOCAL_LDLIBS := -L$(LOCAL_PATH)/<your_so_path> -l<your_so>还编不过?编过了跑不过?把你的so全拷贝到 libs/armeabi下看看,重新生成看一下
当前一个库生成静态库时,libs/armeabi下面只有一个libtwolib-second。
当编译为动态库时,libs/armeabi下面有两个库,比上面多了一个libtwolib-first但是在模拟器里面调用这个库的时候就是报错,不知道为什么...
具体是:
System.loadLibrary("first");
System.loadLibrary("twolib-first");
注意先后顺序,先加载libfirst.so,然后再加载libtwo-first.so。
NDK的Sample里面真的没有哪个是调用第三方的so库的。