【问题标题】:How to build MuPDF for Android on Linux如何在 Linux 上为 Android 构建 MuPDF
【发布时间】:2014-12-20 19:54:06
【问题描述】:

我在 Linux 上为 Android 构建 MuPDF 时遇到了困难。我完全按照How to build MuPDF for Android 的指示进行操作

运行命令“ant debug”时构建失败并出现以下错误-

/home/georgew/AndroidSDK/android-sdk-linux/tools/ant/build.xml:653:执行此行时出现以下错误:

/home/georgew/AndroidSDK/android-sdk-linux/tools/ant/build.xml:698: null 返回:132

我花了一天时间尝试 Google 可以找到的所有建议解决方案。它们都因此错误而失败,只是返回的 null 的值可能会有所不同。

构建系统是运行 Scientific Linux 6.3 的 Pentium4。 Ant 是从源代码编译的,因为需要比 SL6 提供的新版本。

下面是运行 'ant -d debug' 的最后几行输出

    Class com.android.ant.RenderScriptTask$1 loaded from ant loader (parentFirst)
     [echo] ----------
     [echo] Handling Resources...
Property "android.library" has not been set
     [aapt] Generating resource IDs...
Class org.apache.tools.ant.types.Commandline$Argument loaded from parent loader (parentFirst)
     [aapt] Current OS is Linux
     [aapt] Executing '/home/georgew/AndroidSDK/android-sdk-linux/build-tools/21.0.2/aapt' with arguments:
     [aapt] 'package'
     [aapt] '-f'
     [aapt] '-m'
     [aapt] '-0'
     [aapt] 'apk'
     [aapt] '-M'
     [aapt] '/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/AndroidManifest.xml'
     [aapt] '-S'
     [aapt] '/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/res'
     [aapt] '-S'
     [aapt] '/home/georgew/AndroidSDK/src/mupdf/platform/android/res'
     [aapt] '-I'
     [aapt] '/home/georgew/AndroidSDK/android-sdk-linux/platforms/android-16/android.jar'
     [aapt] '-J'
     [aapt] '/home/georgew/AndroidSDK/src/mupdf/platform/android/gen'
     [aapt] '--generate-dependencies'
     [aapt] '-G'
     [aapt] '/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/proguard.txt'
     [aapt]
     [aapt] The ' characters around the executable and arguments are
     [aapt] not part of the command.
Execute:Java13CommandLauncher: Executing '/home/georgew/AndroidSDK/android-sdk-linux/build-tools/21.0.2/aapt' with arguments:
'package'
'-f'
'-m'
'-0'
'apk'
'-M'
'/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/AndroidManifest.xml'
'-S'
'/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/res'
'-S'
'/home/georgew/AndroidSDK/src/mupdf/platform/android/res'
'-I'
'/home/georgew/AndroidSDK/android-sdk-linux/platforms/android-16/android.jar'
'-J'
'/home/georgew/AndroidSDK/src/mupdf/platform/android/gen'
'--generate-dependencies'
'-G'
'/home/georgew/AndroidSDK/src/mupdf/platform/android/bin/proguard.txt'

The ' characters around the executable and arguments are
not part of the command.

BUILD FAILED
/home/georgew/AndroidSDK/android-sdk-linux/tools/ant/build.xml:653: The following error occurred while executing this line:
/home/georgew/AndroidSDK/android-sdk-linux/tools/ant/build.xml:698: null returned: 132
        at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:650)
        at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:676)
        at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:502)
        at com.android.ant.AaptExecTask.execute(AaptExecTask.java:703)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at com.android.ant.IfElseTask.execute(IfElseTask.java:120)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
        at org.apache.tools.ant.Main.runBuild(Main.java:801)
        at org.apache.tools.ant.Main.startAnt(Main.java:218)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

【问题讨论】:

    标签: android linux ant mupdf


    【解决方案1】:

    经过进一步研究 - 问题不在于构建 MuPDF。问题在于,较新版本的 SDK 中的 aapt 是在支持 SSE2 的情况下编译的,并且在较旧的机器上被破坏了。

    可用的解决方案是在用于构建的机器上下载和编译 SDK,安装 SDK 并在更现代的机器上构建项目,或者找到在没有 SSE2 的情况下编译的最新版本 aapt 的副本支持。

    我搜索并找到了一个 jar 文件 apktool-2.0.jar,我从中提取了 aapt,构建成功完成。

    【讨论】:

      猜你喜欢
      • 2012-06-30
      • 2017-02-06
      • 2012-04-16
      • 1970-01-01
      • 2021-05-06
      • 2014-08-05
      • 2013-08-05
      • 1970-01-01
      • 2014-06-21
      相关资源
      最近更新 更多