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/aFreeRDP
、build.xml
そこに があったので と言いant build install
ました。ビルド プロセスは開始されましたが、リソースのコンパイル フェーズで終了しました。現在、レベル 23 の Android ビルド ツールと、Android SDK を備えたコンパニオン ツールがあります。ソースを見ると、ソースはもともとレベル 21 を対象としていたことがわかります。レベル 21 の SDK も追加し、.21 に強制しようとしmaxSdkVersion
ましたAndroidManifest.xml
が、役に立ちませんでした。コンパイルログ:
リソースエラーの後にわかるように
[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 をデバッグすることができました。