【问题标题】:Unable to Run mksdcard sdk tool on ARMv7 Processor Ubuntu 14.04无法在 ARMv7 处理器 Ubuntu 14.04 上运行 mksdcard sdk 工具
【发布时间】: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 版本,否则您可能正在考虑自己从源代码构建它(或至少是本机代码部分)。

标签: linux android-studio armv7 crouton-os


【解决方案1】:

我发现了一种解决方法。

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

  1. 前往GitHub 并获取源代码mksdcard.c。将此下载到您想要的任何位置,但请确保将其下载为mksdcard.c 而不是mksdcard.c.txt,您的浏览器可能会尝试这样做。以后您可以随时重命名文件,以防您不小心错误地保存了文件名。
  2. 在您的chroot 环境中,转到您下载文件的目录。
  3. 确保您已安装gcc 编译工具。尝试运行 gcc -v 以查看您安装的 GCC 版本。如果这不起作用,您需要通过sudo apt-get install gcc 安装 GCC。
  4. 运行gcc -o mkdscard mksdcard.c。这使用 GCC 将源代码编译成可以执行的东西。编译完成后,您可以使用./mkscard 让Linux 执行二进制文件,验证它是否有效。
  5. 导航到您的 Android SDK 工具目录。这通常是~/Downloads/Android/Sdk/tools。通过运行ls,您将列出文件并找到您的Linux 发行版不知道如何运行的mksdcard 版本。 (在此文件上运行 ./mksdcard 将确认这一点。)
  6. 在某处备份损坏的二进制文件,然后删除tools 文件夹中的副本。 (我在 Android SDK Tools 文件夹中创建了一个 backups/ 目录以将其移动到。)
  7. 在目录中,使用rm -r mksdcard 删除旧的mksdard 二进制文件。
  8. 最后,复制兼容的二进制文件来代替它,例如cp ~/Downloads/mksdcard .(将我们创建的mksdcard 二进制文件复制到当前目录.,即Android SDK Tools 文件夹。)
  9. 返回到您的 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 的类似路径) .

【讨论】:

    猜你喜欢
    • 2016-10-09
    • 2016-12-23
    • 2016-06-03
    • 2015-05-30
    • 2015-05-28
    • 2015-07-07
    • 2016-11-17
    • 2016-05-31
    • 2015-05-20
    相关资源
    最近更新 更多