【问题标题】:Requires GLIBC_2.14 while building Android App from Command Line in CentOS 6在 CentOS 6 中从命令行构建 Android 应用程序时需要 GLIBC_2.14
【发布时间】:2017-01-04 17:19:39
【问题描述】:

我正在尝试使用以下命令从命令行构建 Android 应用程序:

./gradlew assemble

但出现以下错误。

java.io.IOException: Stream closed
    at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:433)
    at java.io.OutputStream.write(OutputStream.java:116)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
    at com.android.builder.png.AaptProcess.shutdown(AaptProcess.java:143)
    at com.android.builder.png.QueuedCruncher$1.destruction(QueuedCruncher.java:144)
    at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:245)
    at java.lang.Thread.run(Thread.java:745)
Exception while processing task java.lang.RuntimeException: AAPT process not ready to receive commands
AAPT err(Facade for 725518148): /opt/android-sdk-linux/build-tools/25.0.0/aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/android-sdk-linux/build-tools/25.0.0/lib64/libc++.so)
Thread(png-cruncher_6): Stream closed

它显示 `GLIBC_2.14' not found。我用命令检查过,

strings /lib/libc.so.6 | grep GLIBC

因此,正如预期的那样,GLIBC_2.14 在以下列表中不可用,

GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE

所以,我尝试安装 GLIBC_2.14,但无法在我的 Linux CentOS 6 上安装它。

Stackoverflow 上的一些线程建议升级构建工具和平台版本。我也这样做了。甚至重新安装了Android SDK,但它似乎不起作用。

您能否建议在 CentOS 6 上安装 GLIBC_2.14 的步骤?

【问题讨论】:

    标签: android linux sdk centos6 glibc


    【解决方案1】:

    问题已解决。

    首先,我按照link 中给出的步骤手动安装了 GLIBC 2.14。

    我仍然面临这个问题。所以,我所做的就是改变/lib64/libc.so.6的符号链接。使它指向 /opt/glibc-2.14/lib/libc.so.6

    所以,基本上符号链接是,

    /lib64/libc.so.6 -> /opt/glibc-2.14/lib/libc.so.6
    

    【讨论】:

    • 请注意,这可能会以不可预知的方式破坏系统,因为您没有同时更新 glibc 的其余部分(除非您已应用所有分发补丁,否则也不建议这样做)。
    • 这对我有用。确保覆盖软链接
    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多