无法在 ARMv7 处理器 Ubuntu 14.04 上运行 mksdcard sdk 工具

Posted

技术标签:

【中文标题】无法在 ARMv7 处理器 Ubuntu 14.04 上运行 mksdcard sdk 工具【英文标题】:Unable to Run mksdcard sdk tool on ARMv7 Processor Ubuntu 14.04 【发布时间】:2016-04-10 18:13:01 【问题描述】:

尝试在我的 Linux 笔记本电脑上安装 android Studio 时,我得到“无法运行 mksdcard 工具”从我的搜索中可以看出,这通常是由于 64 位 Linux 上缺少 32 位兼容性库造成的,但是我是在 ARMv7 处理器上运行它,使用 the crouton project 在我的 Chromebook 上使用 Linux。我已尝试安装以 i386 结尾的推荐包,但命令行返回:

正在阅读包列表...完成 构建依赖树 正在读取状态信息...完成 E: 无法找到包裹 [此处为包裹名称] E: 用 Regex '[Name of package]' 找不到任何包

有谁知道是什么原因造成的,我该如何解决?

【问题讨论】:

我不确定这个问题是否足够清楚,因为在我看来,由于 64 位,您正在尝试将 32 位 x86 库放在 32 位 ARM Chromebook 上。 ......某事......,这几乎没有任何意义。除非您尝试在 ARM 主机系统上交叉编译 x86 代码,呃,原因,但这是非常不寻常的事情。 我对 linux 比较陌生,所以我尝试将推荐给其他有类似问题的用户的软件包放入,以便在我尝试安装 android studio 时修复错误,但尝试这样做确实不行。从你的反应来看,我认为这不是正确的选择。我主要是想让程序运行,而不是其他任何事情。很抱歉有任何混淆。 好的,你到底是从哪里安装 Android Studio 的?从网站下载几乎可以肯定是一个非首发 - 如果由于缺少 32 位本机库而导致部分在 64 位 x86 上失败,这意味着它们包含 32 位 x86 代码,这些代码不会在全部在 ARM 机器上。除非您找到了现成的 ARM 版本,否则您可能正在考虑自己从源代码构建它(或至少是本机代码部分)。 Error: Unable to run mksdcard SDK tool in ubuntu的可能重复 【参考方案1】:

我发现了一种解决方法。

经过一番搜索,我发现我们可以自己为ARMv7平台创建该工具的可执行二进制文件! 呜呜

    前往GitHub 并获取源代码mksdcard.c。将此下载到您想要的任何位置,但请确保将其下载为mksdcard.c 而不是mksdcard.c.txt,您的浏览器可能会尝试这样做。以后您可以随时重命名文件,以防您不小心错误地保存了文件名。 在您的chroot 环境中,转到您下载文件的目录。 确保您已安装gcc 编译工具。尝试运行 gcc -v 以查看您安装的 GCC 版本。如果这不起作用,您需要通过sudo apt-get install gcc 安装 GCC。 运行gcc -o mkdscard mksdcard.c。这使用 GCC 将源代码编译成可以执行的东西。编译完成后,您可以使用./mkscard 让Linux 执行二进制文件,验证它是否有效。 导航到您的 Android SDK 工具目录。这通常是~/Downloads/Android/Sdk/tools。通过运行ls,您将列出文件并找到您的Linux 发行版不知道如何运行的mksdcard 版本。 (在此文件上运行 ./mksdcard 将确认这一点。) 在某处备份损坏的二进制文件,然后删除tools 文件夹中的副本。 (我在 Android SDK Tools 文件夹中创建了一个 backups/ 目录以将其移动到。) 在目录中,使用rm -r mksdcard 删除旧的mksdard 二进制文件。 最后,复制兼容的二进制文件来代替它,例如cp ~/Downloads/mksdcard .(将我们创建的mksdcard 二进制文件复制到当前目录.,即Android SDK Tools 文件夹。) 返回到您的 Android Studio 安装程序。在抱怨mksdcard 失败的对话框中,点击Retry,安装应该会继续。完成后,请务必应用环境推荐的任何更新。尽情享受吧!

【讨论】:

环境:CentOS7。我正在按照上面建议的程序进行操作。将原来的可执行文件 mksdcard 重命名为 mksdcard.txt。下载,将 mksdcard.c 放在 ../sdk/tools/ 并使用“gcc -o mkdscard mksdcard.c”编译。它创建了可执行的二进制 mksdcard。但是,得到异常 bashc: .: mksdcard: 无法执行二进制文件。请指导我!【参考方案2】:

对于较新的版本,例如。 3.1 C4 的 Android Studio 在 ARM32 上运行 Ubuntu,您还需要将 mksdcard 放在 ~/Downloads/Android/Sdk/emulator 中(引用来自 Alext T 的类似路径) .

【讨论】:

以上是关于无法在 ARMv7 处理器 Ubuntu 14.04 上运行 mksdcard sdk 工具的主要内容,如果未能解决你的问题,请参考以下文章

arm64、armv7、armv7s是指啥?

如何在交叉编译armv7的图集时缩短构建时间?

Ubuntu 18.04.1 下快速搭建 LNMP环境(PHP7.2.5+MySql5.7+Nginx1.14.0)

Linux(Ubuntu 14.0)

22在Ubuntu 14.0上使用韦东山IP2977测试总结(未成功)

ubuntu 交叉编译 armv7_32 ffmpeg x264(已完成)