2016-09-02 4 views
0

Я хотел построить библиотеки JXcore для android, и я столкнулся с ошибкой.Невозможно построить jxcore для android

Я выполнил все предварительные требования: Я бегу ubuntu 16.04, с gcc 5.4.0, python 2.7.12, GNU Make 4.1.

Это шаги я последовавшие:

  1. Я скачал андроид NDK и экстрагируют его в ~/Downloads/android-ndk-r12b
  2. клонировать библиотеку jxcore в ~/Downloads/jxcore
  3. кд в jxcore
  4. побежал build_scripts/android-configure.sh ../android-ndk-r12b/, этот скрипт успешно завершен
  5. Затем мне нужно было запустить 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 

Кто-нибудь знает, что причины этого, или исправление для него?

ответ

0

Я столкнулся с той же проблемой. Я сделал быстрое и грязное исправление, чтобы идти.

Откройте файл «configure» в папке jxcore. Перейдите к строке 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 »в целое число, процесс останавливается. Я просто заменил «x» на «0». Однако вы можете проверить свою версию, чтобы быть в безопасности. Поэтому поместите print proc.communicate()[0] прямо перед строкой 560 перед внесением других изменений. Тогда ваш фактический номер версии будет распечатан в вашем журнале, когда вы снова запустите программу.

Я надеюсь, что это может вам помочь.

Смежные вопросы