无法为Android

时间:2016-09-02 14:52:31

标签: android python android-ndk jxcore

我想为Android构建JXcore库,我遇到了一个错误。

我已满足所有先决条件: 我正在运行ubuntu 16.04,使用gcc 5.4.0,python 2.7.12,GNU Make 4.1。

这是我遵循的步骤:

  1. 我已经下载了android ndk,并在~/Downloads/android-ndk-r12b
  2. 中提取了它
  3. ~/Downloads/jxcore
  4. 中克隆了jxcore库
  5. cd into jxcore
  6. build_scripts/android-configure.sh ../android-ndk-r12b/,此脚本成功完成
  7. 然后我需要运行build_scripts/android_compile.sh ../android-ndk-r12b/ --embed-leveldown
  8. 我在最后一步遇到错误,这是日志:

    Compiling Android ARM7
    
    Traceback (most recent call last):
      File "./configure", line 1119, in <module>
        configure_node(output)
      File "./configure", line 645, in configure_node
        configure_arm(o)
      File "./configure", line 569, in configure_arm
        elif is_arm_hard_float_abi():
      File "./configure", line 491, in is_arm_hard_float_abi
        if compiler_version() >= (4, 6, 0):
      File "./configure", line 560, in compiler_version
        version = tuple(map(int, proc.communicate()[0].split('.')))
    ValueError: invalid literal for int() with base 10: 'x\n'
    compilation aborted for arm target
    

    有没有人知道是什么原因造成这种情况或修复它?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。为了开始,我做了一个快速而肮脏的修复。

打开&#34;配置&#34;您的jxcore文件夹中的文件。与日志中的最后一个条目一样,转到第560行。用前面的#注释掉第560行。 在下面插入该行的更改版本,如下所示:

第560行:#version = tuple(map(int, proc.communicate()[0].split('.')))

第561行:version = tuple(map(int, "4.9.0".split('.')))

...基本上会发生的事情是你的CC版本类似于&#34; 4.9.x&#34;并且因为Python无法转换&#34; x&#34;进程停止的整数。我刚刚更换了&#34; x&#34;使用&#34; 0&#34;。但是,您可能希望检查您的版本是否安全。因此,在进行其他更改之前,请将print proc.communicate()[0]放在第560行之前。然后,当您再次运行程序时,您的实际版本号将打印在您的日志中。

我希望这对你有所帮助。