无法在 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 工具的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 18.04.1 下快速搭建 LNMP环境(PHP7.2.5+MySql5.7+Nginx1.14.0)