光写一个android linux的native程序 简单 设置平台android 然后cpu ARM64就可以了。但是有个问题 。。我想和我的C语言组合起来完成某些事情 。然后考虑用C语言编译成.a这种静态的库给cgo用。cgo用的时候报错。报一个 ld error 这种 然后 libnumber.a(number.o): not an ELF file 这种提示(文件名我用的网上一个帖子的命名)。为什么连接.a 文件会报不是个ELF文件的错误呢 。。后来想算了。用动态的吧。。然后动态的编译过了 。。拿到Android去跑的时候 。 library "libxxxxxx.so" not found: needed by main executable 有一直报这个错误 。程序加载不进这个so。我自己写个程序dlopen去加载都好好的 。。哎。有没有朋友遇到过这个问题的呢 。望告知。感谢。
有疑问加站长微信联系(非本文作者)

gradle 打包成apk的时候,不是一个简单的压缩包;它会根据一些配置文件把指定的资源放在指定的路径。所以你必须在一些配置文件中增加相应的规则。
这个问题可以简单地验证,直接把apk解压,里面是没有你的那个go编译的so文件的。
我go语言直接编译成linux下的可执行文件。就一个文件 。然后丢到收i就里面 。chmod 777 xxx 。ELF格式的 。直接可以执行 。只是在导出函数的时候。感觉导出的函数有点不对。。可以在别的so里面调用dlopen和dlsym可以得到函数地址 。但是这个地址里面的内容不是汇编代码 所以我调用这个地址死了
go编动态库,函数大写加export标识,build mode是c-share。可以用工具查看elf文件,是否正确暴露了
额。。。你的问题不是so文件直接找不到吗
你的c代码怎么编译的? 首先是要跨平台的gcc编译器, 类似gcc-arm64-linux-.. 这样的
C语言.a 给go用 。。go已经可以编译了。也搞不懂怎么回事