1

aFreeRDP は、FreeRDP プロジェクトの Android クライアントです。

64 ビットの Ubuntu 15.04 Vivid を使用しています。

私の目標は、FreeRDP をコンパイルすることです。私はゴールラインにいますが、それを越えることはできません。必要なパッケージである Android NDK を正常にインストールし、外部の openssl をコンパイルしました (Android シェル スクリプトが自動的に実行します)。次に、メイクファイルを生成しました。興味深いことに、どちらでもない

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/aFreeRDPbuild.xmlそこに があったので と言いant build installました。ビルド プロセスは開始されましたが、リソースのコンパイル フェーズで終了しました。現在、レベル 23 の Android ビルド ツールと、Android SDK を備えたコンパニオン ツールがあります。ソースを見ると、ソースはもともとレベル 21 を対象としていたことがわかります。レベル 21 の SDK も追加し、.21 に強制しようとしmaxSdkVersionました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 には単一のエントリがあり、非常にあいまいです。どうすればこれを修正できますか? どのファイルを投稿すればよいか教えてください。


更新 1:

このバグにも影響を与えた可能性のある ADT の厄介な問題を取り除きます: Eclipse Error: Error parsing ...\android-22\android-wear\armeabi-v7a\ devices.xmlなくなりましたが、aFreeRDP コンパイル エラーはまだ残っていました。


更新 2: 過去にさかのぼろうとしましたが、私の目標は 21 を提供する Android SDK を用意することでしたが、レベル 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 を推測しなければなりませんでした)。


更新 3:

github.com/FreeRDP/FreeRDP/blob/master/docs/README.android の指示を使用して、Android Studio (v 1.5) から aFreeRDP をデバッグすることができました。

4

2 に答える 2

1

同じトピックを投稿したいのですが、すでに作成されているので、ここに投稿します。コメントする必要がありますが、コメントする50の評判がないので、ここで回答します: 注: (xxx = https://github.com in this post)

参照リンク: xxx/FreeRDP/FreeRDP/wiki/Compilation xxx/awakecoding/FreeRDP-Manuals/blob/master/Developer/FreeRDP-Developer-Manual.markdown およびインターネットからのその他の投稿

目標: Android デバイス用の FreeRDP を構築する。2年前、Ubuntu 12 / 14用にビルドしていましたが、現在ビルドが壊れています。

新しい環境を再度セットアップする必要があります。

-Windows 7 Enterprise 64 ビット (メイン OS) -WMware WorkStation 10 -VM Ubuntu 15.10 Wily 64 ビット

NDK10e、JDK7、SDK23 で Ubuntu を準備します...

shaun@ubuntu:~$ lsb_release -a 利用可能な LSB モジュールはありません。ディストリビューター ID: Ubuntu 説明: Ubuntu 15.10 リリース: 15.10 コードネーム: wily

JDKをインストール

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get アップデート

sudo apt-get install oracle-java7-installer

Android NDK をインストールする

chmod a+x android-ndk-r10e-linux-x86_64.bin

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

sudo chown -R root:root /home/shaun/Main/android-ndk-r10e

sudo mv /home/shaun/Main/android-ndk-r10e /opt

export NDK=/opt/android-ndk-r10e

Android SDK をインストールする

android-sdk_r23.0.2-linux.tgz をダウンロードして解凍します。

sudo mv /home/shaun/Main/android-sdk-linux /opt/android-sdk

shaun@ubuntu:/opt/android-sdk/tools$ ./android

依存関係のインストール GIT / CMAKE / GCC

sudo apt-get install \ build-essential git-core 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 libavcodec-dev \ libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libcunit1-dev libdirectfb-dev xmlto doxygen libxtst-dev

sudo apt-get インストール lib32stdc++6

sudo apt-get インストール lib32z1

FreeRDP を入手する

git クローン git://github.com/FreeRDP/FreeRDP.git cd FreeRDP

パスを追加

shaun@ubuntu:~$ gedit ~/.bashrc export ANDROID_NDK=/opt/android-ndk-r10e export ANDROID_SDK=/opt/android-sdk export FREERDP_EXTERNAL_SSL_PATH=/home/shaun/Main/FreeRDP-master/external/Android-external -openssl-ndk-static export PATH=$PATH:$FREERDP_EXTERNAL_SSL_PATH export PATH="$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_NDK"

FreeRDP から -> ./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="/home/shaun/Main/FreeRDP/external/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 . 作る

このmakeの後、必要なすべてのライブラリがありますが、まだAPKを持っていません:...

...長い出力....合計時間: 2 秒 client/Android/aFreeRDP/CMakeFiles/android-package.dir/build.make:50: ターゲットのレシピ 'client/Android/aFreeRDP/bin/aFreeRDP-debug. apk' failed make[2]: * [client/Android/aFreeRDP/bin/aFreeRDP-debug.apk] エラー 1 CMakeFiles/Makefile2:2494: ターゲット 'client/Android/aFreeRDP/CMakeFiles/android-package.dir/ のレシピすべて' 失敗した make[1]: * [client/Android/aFreeRDP/CMakeFiles/android-package.dir/all] エラー 2 Makefile:136: ターゲット 'all' のレシピが作成に失敗しました: *** [すべて] エラー 2

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

ECLIPSE にインポートし、Eclipse から正常にビルドします。新しい機能を使用して、すべてのデバイスで APK とアプリケーションを再度実行します。最も高度な機能は、マイクのリダイレクトも機能します :-)

しかし、まだANDROID STUDIOでは動作しません.

于 2016-01-21T15:55:09.787 に答える
1

23.0 SDK tgz から始めて、1 ラウンド アップグレードしました (Android 6.0 にはアップグレードしません)。次に、面倒な xml ファイルを Android SDK からコピーします。そのため、SDK からその values-v23 フォルダーを削除しました。また、aFreeRDP の AndroidManifest.xml を変更し、minSdkVersion を 14 から 17 に設定しました。ディレクトリの削除は確かに役に立ちました。他の 2 つの手順が貢献したかどうかはわかりませんが、今は apk を持っています。これは醜いハックだと思いますが、回避策にすぎません。今のところ、これを回答としてマークしません。


更新: 完全に更新された Android SDK から始めました。14 から 17 への minSdkVersion の増加も問題ではありません。エラーを解消した唯一のことは、Android SDK 内からその values-v23 ディレクトリを侵襲的に削除したことです。


注: コンパイルは、1 年または数年前よりも簡単になっています。android_setup_build_env.sh は、ssl ライブラリやその他のもののダウンロードとコンパイルを処理します。

于 2016-01-02T02:03:12.807 に答える