全网首发:编译Android doubango时,armv7-a编译不出来的解决办法

简介: 全网首发:编译Android doubango时,armv7-a编译不出来的解决办法

  今天编译Android doubango,arm64顺利编译出来了,可是armv7-a/armv7-a-neon死活不出来。难道是NDK问题?吾换了多个NDK,依然不行。看来不是这个问题。

  仔细观察输出信息:

Toolchain installed to /home/quantum6/nanjing/doubango/my-android-toolchain-android-armv7-a.
checking for arm-linux-androideabi-gcc... /home/quantum6/nanjing/doubango/my-android-toolchain-android-armv7-a/bin/arm-linux-androideabi-gcc
checking whether the C compiler works... no

 一查,目录下只有my-android-toolchain-android-arm64,没有armv7-a。说明了什么?说明哪里出错了,没有找到交叉编译链。问题出在哪里?应该是出在NDK版本上,新版本实际上不支持此类编译了。怎么解决呢?吾检查configure,发现以下内容:

    arm64)
      export ANDROID_PREFIX=aarch64-linux-android
      export SYSROOT=$NDK/platforms/android-21/arch-arm64
      export ANDROID_TOOLCHAIN=$(pwd)/my-android-toolchain-android-arm64
          $NDK/build/tools/make-standalone-toolchain.sh --arch=arm64 --platform=android-21 --install-dir=$ANDROID_TOOLCHAIN
      export CFLAGS='-DANDROID=1 -D__ARMEL__'
      TARGET_ARCH="arm"
    ;;
    armv7-a)
      export ANDROID_PREFIX=arm-linux-androideabi
      export SYSROOT=$NDK/platforms/android-3/arch-arm
      export ANDROID_TOOLCHAIN=$(pwd)/my-android-toolchain-android-armv7-a
          $NDK/build/tools/make-standalone-toolchain.sh --platform=android-3 --arch=arm --install-dir=$ANDROID_TOOLCHAIN
          export CFLAGS='-march=armv7-a -mfloat-abi=softfp -DANDROID=1 -D__ARMEL__'
          export LDFLAGS='-Wl,--fix-cortex-a8'
      TARGET_ARCH="arm"

 大哥什么时代了,还android-3?configure是autogen.sh产生的。这个咱就有解决办法了:


打开configure.ac,把android-3修改为android-19。再次运行.autogen.sh进行编译即可。


 吾已将此修改上传到开源库。


https://github.com/quantum6/doubango-quantum6


目录
相关文章
|
4月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
330 1
|
6月前
|
Java API 开发工具
如何将python应用编译到android运行
【6月更文挑战第27天】本文介绍在Ubuntu 20上搭建Android开发环境,包括安装JRE/JDK,设置环境变量,添加i386架构,安装依赖和编译工具。并通过`p4a`命令行工具进行apk构建和清理。
101 6
如何将python应用编译到android运行
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
110 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
6月前
|
Android开发 iOS开发
android自动化编译
android自动化编译
|
2月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
2月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
3月前
|
Android开发
Android中SurfaceView的双缓冲机制和普通View叠加问题解决办法
本文介绍了 Android 平台上的 SurfaceView,这是一种高效的图形渲染控件,尤其适用于视频播放、游戏和图形动画等场景。文章详细解释了其双缓冲机制,该机制通过前后缓冲区交换来减少图像闪烁,提升视觉体验。然而,SurfaceView 与普通 View 叠加时可能存在 Z-Order 不一致、同步问题及混合渲染难题。文中提供了使用 TextureView、调整 Z-Order 和创建自定义组合控件等多种解决方案。
164 9
|
4月前
|
Android开发 Docker 容器
docker中编译android aosp源码,出现Build sandboxing disabled due to nsjail error
在使用Docker编译Android AOSP源码时,如果遇到"Build sandboxing disabled due to nsjail error"的错误,可以通过在docker run命令中添加`--privileged`参数来解决权限不足的问题。
910 1
|
4月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
183 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
4月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
331 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题