NDK Build x86使用so文件

我在用APP_ABI := armeabi armeabi-v7a x86的进行编译的时候,一直编译不了,第三方的SO是个X86的,于是X86的编译能过去,但是ARM的就不行了:

root@hjm-H61M-DS2:~/workspace/JNI/jni# $NDK8/ndk-build
Compile thumb  : addjni <= libaddjni22.c
SharedLibrary  : libaddjni.so
/root/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: skipping incompatible /root/workspace/JNI/jni/libaddjni/libfoo_x86.so when searching for -lfoo_x86
/root/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: cannot find -lfoo_x86
collect2: ld returned 1 exit status
make: *** [/root/workspace/JNI/obj/local/armeabi/libaddjni.so] Error 1

  如果有或创建Application.mk文件,则在该文件添加如下内容:

   APP_ABI := armeabiarmeabi-v7a x86

  如果没有或不想使用Application.mk文件,则在ndk-build参数中添加APP_ABI=“armeabi armeabi-v7a x86”

   so文件都会打在apk中,而且会依据系统CPU架构进行安装。

  

时间: 2024-09-22 12:50:01

NDK Build x86使用so文件的相关文章

android ndk adt自动生成头文件问题。

问题描述 android ndk adt自动生成头文件问题. android ndk adt自动生成头文件时候,在项目src目录下打开cmd.运行javah加adt复制的方法包名,为什么提示找不到com.zhhd.simplejni.MainActivity的类文件.在bin/classes也不行.怎么办,卡在这么个地方太闹心了 解决方案 javah -classpath . -jni 这里点表示当前路径.

android ndk 引入已有的.so文件,编译时消失,求大牛

问题描述 android ndk 引入已有的.so文件,编译时消失,求大牛 我有个android ndk工程,引入了已有的.so文件(copy 到libsarmeabi文件下).编译的时候,就只生成了自有的.so文件,copy的已有的.so文件都消失.我怎样才能引入第三方.so文件呢,求大牛 解决方案 你先生成自有的,再拷入已有的 解决方案二: 是不你的Android.mk文件没写正确 解决方案三: 若是使用cdt builder那再正常不过了,cdt builder先将lib/armeabi清

eclipse android so-android ndk 引入已有的.so文件

问题描述 android ndk 引入已有的.so文件 我用eclipse编译生成apk.在程序中需要使用第三方的so和jar.我将jar放入libs目录下.然后so放入libsarmeabi.每次编译打包时候,第三方的libtest.so都被删除,然后无法打包到apk中,请各位大牛帮忙 解决方案 打包正常情况是不会被删除的,你需要检查你的配置,一.你是否对jni部分进行自己编译.2.检查第三方的jar和so文件是否是正确的,libtest.so的名字来看你是自己写的 一个吧,不像是第三方的.

Android NDK 生成以及调用so 文件_Android

1.使用NDK来生成so文件: hello-jni.c 函数名Java +包名+函数名字 2.修改Android.mk文件 LOCAL_SRC_FILES :=hello-jni.c 指定c++文件 3.编译so文件 4.调用so文件 so文件copy到android项目的libs/armeabi目录下 最后输出一下结果: 以上就是本篇文章对Android  JNI开发流程的梳理,希望可以帮助开发 JNI的朋友.

Android NDK调用第三方库文件及找不到第三方库解决方案

如何在Android NDK中调用第三方库文件(.so) 1.在project/jni目录下创建prebuilt子目录(目录名可自定义). 2.将第三方.so放到prebuilt中,并创建Android.mk, 内容如下:     LOCAL_PATH := $(call my-dir)     include $(CLEAR_VARS)     LOCAL_MODULE := xxx     LOCAL_SRC_FILES := libxxx.so     include $(PREBUILT

Android 开发 之 JNI入门 - NDK从入门到精通

NDK项目源码地址 :  -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git  -- Java传递参数给C语言实例程序 : GitHub - https://github.com/han1202012/NDKParameterPassing.git  --C语言回调Java方法示例程序 : GitHub - https://github.com/han1202012/NDK_Callback.git

AS2.2使用CMake方式进行JNI/NDK开发

之前写过一篇比较水的文章Android手机控制电脑撸出HelloWorld 里面用到了JNI/NDK技术. 这篇文章给大家介绍下JNI/NDK开发.采用的是Android Studio2.2开发环境,使用CMake方式进行开发. JNI(Java Native Interface)是java与C/C++进行通信的一种技术,使用JNI技术,可以java调用C/C++的函数对象等等,Android中的Framework层与Native层就是采用的JNI技术. 我们知道,Android系统是基于lin

深入分析Android (build/core/*.mk脚本)

http://blog.csdn.net/wh_19910525/article/details/7519919 文档简要整理Android的make脚本的内容.以供备忘和参考. 1.    Build Layers Build Layers描述的是产品的硬件配置情况,据此make时选择不同的配置和模块.按照从上到下的顺序,Build Layer分成4层. Layer    sample    Note Arch    arm, x86    处理器的种类 Board    -    板子类型的

Android 开发 NDK从入门到精通

http://blog.csdn.net/shulianghan/article/details/18964835 NDK详解 1. 交叉编译库文件 C代码执行 : C代码被编译成库文件之后, 才能执行, 库文件分为动态库 和静态库 两种; -- 动态库 : unix环境下.so 后缀的是动态库, windows环境下.dll 后缀的是动态库; 动态库可以依赖静态库加载一些可执行的C代码; -- 静态库 :.a 后缀是静态库的扩展名; 库文件来源 : C代码 进行 编译 链接操作之后, 才会生成