无法为 android 构建 jxcore

Can't build jxcore for android

我想为 android 构建 JXcore 库,但我遇到了错误。

我已满足所有先决条件: 我是 运行ning ubuntu 16.04,gcc 5.4.0,python 2.7.12,GNU Make 4.1.

这是我遵循的步骤:

  1. 我下载了androidndk,解压到~/Downloads/android-ndk-r12b
  2. ~/Downloads/jxcore
  3. 中克隆了 jxcore 库
  4. cd 进入 jxcore
  5. 运行 build_scripts/android-configure.sh ../android-ndk-r12b/,此脚本成功完成
  6. 然后我需要 运行 build_scripts/android_compile.sh ../android-ndk-r12b/ --embed-leveldown

我在最后一步出错了,这是日志:

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

有谁知道是什么原因造成的,或者有解决办法吗?

我运行陷入同样的​​问题。为了开始,我做了一个快速而肮脏的修复。

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

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

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

...基本上发生的事情是您的 CC 版本类似于“4.9.x”,并且由于 Python 无法将 "x" 转换为整数,因此该过程停止。我只是用“0”替换了 "x"。但是,为了安全起见,您可能需要检查您的版本。因此,在进行其他更改之前,将 print proc.communicate()[0] 放在第 560 行之前。然后你的实际版本号将在你的日志中打印出来,当你再次 运行 程序时。

希望对你有所帮助。