Я пытаюсь скомпилировать Apache Math для iOS.
Я использую этот форк: https://github.com/j2objc-contrib/j2objc-common-libs-e2e-test
Эта библиотека использует версию J2Objc: 0.9.8, а плагин J2Objc-Graddle также устарел и выдает ошибку, связанную сARC.После Google я обнаружил, что обновление до версии J2Objc до 1.0.1 это исправит, и я обновил версию.Файлы компилируются успешно, но на этапе архивирования происходит сбой с ошибкой: Ошибка архиватора статической библиотеки при архивировании liborg.apache.commons-commons-math3-j2objc.a
Я выполнил шагиотсюда: http://dabugger.blogspot.com/2015/03/java-to-objective-c-journey.html
Вот подробные журналы: https://gist.github.com/iducool/ef1531302171c1e59fe988ce5e20d37b
Было бы очень полезно, если бы кто-то мог сказать мне правильные или подходящие шаги или указать причину илиРешение этого вопроса.Я также рад услышать альтернативы этой библиотеки, если таковые имеются [я уже искал, но ничего не нашел].
Обновление:
Вместо плагина Graddle я начал использовать J2Objc, используя правила сборки XCode.Я скачал J2Objc, и есть пример «Hello», который может работать с простым файлом Jave.Я попробовал это, и это работает нормально.
Я добавил математическую библиотеку Apache в тот же проект (чтобы сэкономить время на выполнение настроек и возникновение ошибок) и обновил исходный путь в сценарии BuileRules.XCode рассматривает файлы Java и пытается скомпилировать это, но показывает ошибку пакета в этой библиотеке.
Получение столько ошибок, которые жалуются на не найденный пакет. Вот один из примеров:
error: /Users/myUser/Documents/j2objc-2.4/examples/Hello/Hello/java/org/apache/commons/math3/util/Precision.java:22:
package org.apache.commons.math3.exception does not exist
Update-1
Использование команды ниже:
./j2objc --build-closure -g -d ./gjava -sourcepath /Users/myUser/Downloads/commons-math3-3.6.1-src/src/main/java `find /Users/myUser/Downloads/commons-math3-3.6.1-src/src/main/java -name '*.java'`
Я могу генерировать классы Objective-C.Но эти классы дают ошибки почти во всех импорте, который имеет путь, например,
#include "org/apache/commons/math3/FieldElement.h"
Ошибка:
'org / apache / commons / math3 / FieldElement.h' файл ненайдено
Все ошибки времени компиляции устранены.Попытка использовать классы и посмотреть, работает ли он.Я опубликую ответ через некоторое время.