2016-01-01 1 views
1

aFreeRDP - клиент Android проекта FreeRDP.Как скомпилировать aFreeRDP для Linux

Я использую 64-разрядный Ubuntu 15.04 Vivid.

Моя цель - собрать aFreeRDP. Я на финише, но не могу пересечь его. Я успешно установил необходимые пакеты, Android NDK, а затем скомпилировал внешний openssl (сценарий оболочки Android делает это автоматически). Затем я сгенерировал make-файлы. Интересно ни

cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchain.cmake -DANDROID_NDK=/home/csaba/android-ndk -DFREERDP_EXTERNAL_SSL_PATH=/home/csaba/GitRepos/FreeRDP/external/openssl -DANDROID_SDK=/home/csaba/android-sdk-linux

ни

cmake -DCMAKE_TOOLCHAIN_FILE=cmake/AndroidToolchain.cmake -DANDROID_NDK=/home/csaba/android-ndk -DFREERDP_EXTERNAL_SSL_PATH=/home/csaba/GitRepos/FreeRDP/external/openssl -DCMAKE_BUILD_TYPE=Debug -DANDROID_BUILD_JAVA=OFF -DANDROID_SDK=/home/csaba/android-sdk-linux -DFREERDP_EXTERNAL_JPEG_PATH=/home/csaba/GitRepos/FreeRDP/external/jpeg8d

производства любой apk, но они счастливо скомпилирован libfreerdp-android.so.

мне нужен apk, поэтому я пошел в client/Android/aFreeRDP и так как я был build.xml там, я сказал ant build install. Процесс сборки начался, но затем скончался на этапе компиляции ресурсов. У меня есть инструменты для сборки и сборки Android 23 уровня и сопутствующие материалы с Android SDK. Я вижу в источнике, что источник изначально был нацелен на уровень 21. Я добавил SDK уровня 21 и попытался заставить maxSdkVersion в 21 в AndroidManifest.xml, но это не помогло. Журнал компиляции:

http://pastebin.com/Nc0mqGrQ

Как вы можете видеть, после ошибок ресурсов

[aapt] Generating resource IDs... 
[aapt] /home/csaba/GitRepos/FreeRDP/client/Android/appcompat_v7/res/values-v23/styles_base.xml:20: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'. 
[aapt] 
[aapt] /home/csaba/GitRepos/FreeRDP/client/Android/appcompat_v7/res/values-v23/styles_base_text.xml:19: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'. 
[aapt] 

умрёт

BUILD FAILED 
/home/csaba/android-sdk-linux/tools/ant/build.xml:597: The following error occurred while executing this line: 
/home/csaba/android-sdk-linux/tools/ant/build.xml:649: The following error occurred while executing this line: 
/home/csaba/android-sdk-linux/tools/ant/build.xml:694: null returned: 1 

Сравнивая уровень 21 и уровень 23 ресурсов, уровень 21 имеет путь больше материала, уровень 23 имеет отдельные записи, очень расплывчатые. Как я могу это исправить? Дайте мне знать, какие файлы я должен публиковать.


Update 1:

Избавьтесь от раздражающего вопроса с ADT, что могло повлиять на эту ошибку тоже: Eclipse Error: Error parsing ...\android-22\android-wear\armeabi-v7a\devices.xml К сожалению деинсталлировать Wear снимки, сделанные АТД ошибки уходят, но ошибка компиляции aFreeRDP все еще остался.


Update 2: Я попытался вернуться назад во времени, и моя цель состояла в том, чтобы иметь Android SDK, который обеспечивает 21, но не уровень 23. я резервная копия мой текущий Android SDK. SDK загрузить tgz 22.6.2 (https://dl.google.com/android/android-sdk_r22.6.2-linux.tgz) только обеспечивает цель 21. Но SDK скачать tgz 23.0.0 (https://dl.google.com/android/android-sdk_r23-linux.tgz) уже хочет обновить до 24. Поэтому я не могу получить систему в состояние, когда у меня нет цели 23 (что косвенно вызывает ошибки как-то - более корректно, средство совместимости уровня 24 для цели 23 (которое удовлетворяет цели 21)), но имеет цель 21.

(Бонусный вопрос: почему Google так сильно загружает старые SDK «Мне приходилось возиться и угадывать URL-адреса).


Update 3:

мне удалось отладить aFreeRDP из Android Studio (v 1.5) с использованием направления github.com/FreeRDP/FreeRDP/blob/master/docs/README.android

+0

С Новым Годом BTW –

+0

Очевидно, что инструкции по сборке Android теперь разные, а также показать Android Studio: https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android У меня есть какая-то странная проблема при запуске с Android Studio в настоящее время (застрял с банком запуска и никогда не запускается). –

+0

Мне удалось отладить aFreeRDP от Android Studio (v 1.5), используя указания https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android –

ответ

1

Я начал с 23.0 SDK tgz, обновил один раунд (не обновляя до Android 6.0). Затем беспорядочные файлы xml копируются из Android SDK. Поэтому я удалил папку values-v23 из SDK. Я также изменил файл AndroidManifest.xml aFreeRDP и установил minSdkVersion на 17 из 14. Конечно же, удаление каталогов помогло, я не уверен, что сделали два других шага, но теперь у меня есть apk. Я считаю это уродливым взломом, но обходным путем. Потому что я пока не буду отмечать это как ответ.


Обновление: Я начал с полностью обновленной Android SDK и minSdkVersion врезаться от 14 до 17 также не имеет значения. Единственное, что заставило проблему уйти, - это инвазивное удаление этого каталога ценностей-v23 изнутри Android SDK.


Примечание: Компиляция проще, чем это было год/несколько лет назад. Android_setup_build_env.sh заботится о загрузке и компиляции библиотеки ssl и других материалов.

+0

Это все еще было недостаточно для отладки проекта. Я отделил проект (я знаю, что у меня есть двоичный файл), который можно отладить с помощью Eclipse ADT. Я не смог отладить его с помощью Android Studio, но https://github.com/MrCsabaToth/aFreeRDP –

+0

Мне удалось отладить aFreeRDP от Android Studio (v 1.5), используя указания github.com/FreeRDP/FreeRDP/blob/ master/docs/README.android –

1

Я хочу опубликовать эту же тему, но вы уже сделали ее так, чтобы опубликовать ее здесь. это должно быть комментарий, но я не имею 50 репутации комментировать, так что я сделать это здесь ответить: Примечания: (ххх = https://github.com в этом посте)

Справочник Ссылки: ххх/FreeRDP/FreeRDP/вики/Компиляция ххх/awakecoding/FreeRDP-Manuals/blob/master/Developer/FreeRDP-Developer-Manual.markdown и другие сообщения из интернета

Цель: создать aFreeRDP для Android-устройств. 2 года назад я использовал его для Ubuntu 12/14, но теперь сборка нарушена.

Новая среда должна установить снова:

-Windows 7 Enterprise 64 бит (MAIN OS) -WMware WorkStation 10 -vm Ubuntu 15.10 64bit Wily

Подготовка Ubuntu с NDK10e, JDK7, SDK23 ...

shaun @ ubuntu: ~ $ lsb_release -a Нет доступных модулей LSB. ID дистрибьютора: Ubuntu Описание: Ubuntu 15.10 Выпуск: 15.10 Codename: коварный

Установка JDK

SUDO надстроек APT-репозиторий PPA: webupd8team/Java

Sudo APT-получить обновление

Sudo APT-получить установку оракула-java7-инсталлятор

Установка ANDROID НДК

CHMOD а + х андроид-НДК-r10e-Linux-x86_64.bin

./android-ndk-r10e-linux-x86_64.bin

Судо Чаун -R корень: корень/дома/Shaun/Главная/андроида-НДК-r10e

Судо мв/дома/Shaun/Главная/андроида-НДК-r10e/выбрать

экспорт NDK =/Opt/андроид-NDK-r10e

Установка Android SDK

Скачать и извлечь андроид-sdk_r23.0.2-linux.tgz

Суды мв/дома/Shaun/Главный/андроид-СДК-линукс/Opt/Android-SDK

Shaun @ убунт:/OPT/Android-SDK/инструменты $ ./android

Установки зависимостей GIT/CMake/GCC

Sudo APT-получить установку \ наращивание существенно ГИТ-ядро CMake \ libssl-DEV \ libx11-DEV libxext-DEV libxinerama-DEV libxcursor-DEV libxkbfile-DEV \ libxv-DEV libxi -dev libxdamage-dev libxrender-dev libxrandr-dev \ libasound2-dev libcups2-dev libpulse-dev \ libavutil-DEV кодеком-DEV \ libgstreamer0.10-DEV libgstreamer-плагины-base0.10-DEV libcunit1-DEV libdirectfb-DEV xmlto Doxygen libxtst-DEV

Sudo APT-получить установку lib32stdC++ 6

Sudo APT-получить установку lib32z1

GET FreeRDP

мерзавец клон мерзавец: //github.com/FreeRDP/FreeRDP.git кд FreeRDP

Добавить PATH

Shaun @ убунту: ~ $ Gedit ~/.bashrc экспорт ANDROID_NDK =/Opt/андроид-NDK-r10e экспорт ANDROID_SDK =/Opt/Android-SDK экспорт FREERDP_EXTERNAL_SSL_PATH =/дом/Shaun/Главная/FreeRDP-мастер/внешний/Android-внешнего OpenSSL-НДК-статический экспорт PATH = $ PATH: $ FREERDP_EXTERNAL_SSL_PATH экспорт PATH = "$ PATH: $ ANDROID_SDK/инструменты: $ ANDROID_SDK/платформенные инструменты: $ ANDROID_NDK"

из FreeRDP -> run ./scripts/android_setup_build_env.sh -> см. длинный вывод .... затем в конце вы видите: Подготовленные внешние библиотеки теперь вы можете создать приложение.

Наконец запустить:

CMake -DCMAKE_TOOLCHAIN_FILE = CMake/AndroidToolchain.cmake -DANDROID_NDK = $ ANDROID_NDK -DANDROID_SDK = $ ANDROID_SDK -DFREERDP_EXTERNAL_SSL_PATH = $ FREERDP_EXTERNAL_SSL_PATH -DFREERDP_EXTERNAL_JPEG_PATH = "/ главная/Shaun/Главная/FreeRDP/внешний/jpeg8d "-DANDROID_NATIVE_API_LEVEL: STRING = L -DCMAKE_MAKE_PROGRAM = $ ANDROID_NDK/prebuilt/linux-x86/bin/make -DCMAKE_BUILD_TYPE = Debug -DANDROID_BUILD_JAVA = OFF -L. сделать

После этой марки, у меня есть все LIBS мне нужно, но до сих пор не имею APK: ...

... длинные выходные .... Общего времени: 2 секунды клиента/Android/aFreeRDP/CMakeFiles/android-package.dir/build.make: 50: рецепт для целевого «клиент/Android/aFreeRDP/bin/aFreeRDP-debug.apk» не выполнен сделать [2]: * [клиент/Android/aFreeRDP/bin/aFreeRDP-debug.apk] Ошибка 1 CMakeFiles/Makefile2: 2494: рецепт для целевого клиента/Android/aFreeRDP/CMakeFiles/android-package.dir/all не удался make [1]: * [клиент/Android /aFreeRDP/CMakeFiles/android-package.d л/все] Ошибка 2 Makefile: 136: рецепт цели 'все' не удалось марка: *** [все] Error 2

================= =========

Импорт в ECLIPSE и строить из Затмения Устпешно - APK и приложения работать на всех моих устройствах снова с новыми функциями самой продвинутой функцией является перенаправление микрофон работает хорошо :-)

Но все еще не работает в ANDROID STUDIO, все еще пытаюсь :(, пожалуйста, дайте мне знать, если вы работаете в AS. Спасибо

+0

Мне удалось создать из командной строки. Вам больше не нужно загружать openssl, jpeg и прочее, а ./scripts/android_setup_build_env.sh следует позаботиться об этом. В итоге cmake генерирует и строит скрипты. Вы можете либо вызывать это вручную позже, либо с помощью правильной команды, задачи сборки муравьев начинаются в конце. –

+0

Мне также удалось получить Eclipse ADT build, еще не повезло с Android Studio. Так как мы имеем дело с родными libs (и, следовательно, с C++), я не знаю, насколько поддерживает Android Studio. Я попытался разделить только часть Android (aFreeRDP с .so libs, в основном клиент/Android-библиотеку) в отдельное пространство. Но я еще не добился успеха в Android Studio. –

+0

Прямо сейчас у меня все еще есть проблемы с тем фактом, что aFreeRDP - это всего лишь скелет, а реальное мясо находится в проекте библиотеки Android FreeRDPCore. Кажется, я должен объединить два, а не использовать библиотеку Android, чтобы закончить мой проект. –

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

  • Нет связанных вопросов^_^