Linux下NDK编译出的SO库能在WIndows下的android工程直接使用么
1个回答
2016-04-12
展开全部
先区分清楚host和target的区别。
Linux和Windows是你的host platform。
Android是target platform。
编译Android library使用cross-compilation (交叉编译),即在某个host平台下编译针对某个特定的target平台的体系结构的代码。
使用ndk,只要选择了正确的target平台的ABI(arm,x86,mips等),那你编译得到的.so就能被相应的target平台执行。
如楼上所说,请先检查下面几点:
1. 交叉编译的ABI和你要运行代码的平台是否一致。
2. 检查.so是否被打包进apk文件。用解压缩软件(如winrar,好压)可以解压缩apk,查看你的.so是否在lib文件夹下。
3. 检查.so是否在java code里被Load成功。
4. 检查JAVA定义的native function的名称, 检查JNI函数的名称
Linux和Windows是你的host platform。
Android是target platform。
编译Android library使用cross-compilation (交叉编译),即在某个host平台下编译针对某个特定的target平台的体系结构的代码。
使用ndk,只要选择了正确的target平台的ABI(arm,x86,mips等),那你编译得到的.so就能被相应的target平台执行。
如楼上所说,请先检查下面几点:
1. 交叉编译的ABI和你要运行代码的平台是否一致。
2. 检查.so是否被打包进apk文件。用解压缩软件(如winrar,好压)可以解压缩apk,查看你的.so是否在lib文件夹下。
3. 检查.so是否在java code里被Load成功。
4. 检查JAVA定义的native function的名称, 检查JNI函数的名称
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询