Qt on Android调用so库的问题------

来源:互联网 发布:csrf攻击php 编辑:程序博客网 时间:2024/06/15 04:03


觉得很有用,收藏!


来源:Qt on Android调用so库的问题


 

一:桌面引用dll库的一般方法:

在windows在用QrCreaotr开发dll库并使用的一般做法:

 

 

两个工程的目录结构:

 

其中include文件夹内存放的是HelloWorld工程的头文件

 

Libs文件夹内存放的是HelloWorlddll文件。


 

---------------------------------------------------------

/////////////////////////////////////////////

-----------目录结构介绍完毕--------------------

 

在PluginTest工程中调用的时候很方便:

Pro文件中引用头文件和库文件(这个地方的引用只是编译时候的需要)

 

在main函数中引入头文件并创建HelloWorld的对象

 

HelloWorld类中print函数的实现:

 

打印结果:

 

 

完成

==================================================================

 

 

 

 

二、Qt on AndroidAndroid模式中使用so库文件的问题:

把上面的模式转换到Android模式下使用效果:

1、把HelloWorld的工程切换成Android模式编译,生成HelloWorld.so的动态库(Android属于也是Linux系统),把动态库也拷贝到libs目录下。

2、把PluginTest工程也切换成Android模式,代码不动。

3、编译通过

4、运行...报错,如下图:


 

 

原因:在生成APK文件时并没有把对应的HelloWorld.so库拷贝到apk内部,缺少HelloWorld.so,生成的APK文件无法运行。


三:解决方法:(让生成的so文件在Android模式下可以使用)

 如下图:


添加的库的作用:在qt编译完成生成apk文件时,会把添加到这里所有的库文件都打包进apk文件中。




、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、