aFreeRDP是FreeRDP項目的Android客戶端。如何編譯Linux上的FreeRDP
我正在使用64位Ubuntu 15.04 Vivid。
我的目標是編譯一個FreeRDP。我在終點線,但無法越過它。我成功安裝了所需的軟件包Android NDK,然後編譯了外部openssl(android shell腳本自動執行)。然後我生成了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 SDK的當前級別的23個Android構建工具和配套內容。我從源頭上看到,源代碼最初是針對21級的。我也添加了21級SDK,並試圖在AndroidManifest.xml
中強制maxSdkVersion
到21,但這並沒有幫助。編譯日誌:
正如你可以資源錯誤
[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 不幸的是卸載磨損圖像所作的ADT錯誤消失,但aFreeRDP編譯錯誤仍然存在。
更新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 (它以某種方式間接地導致錯誤 - 更準確地說,目標23(滿足目標21)的級別24的兼容性設施),但是具有目標21.
(附加問題:爲什麼Google很難下載較舊的SDK ?我必須小提琴和猜測網址)。
更新3:
我設法從Android Studio中調試aFreeRDP(V 1.5)使用所述方向github.com/FreeRDP/FreeRDP/blob/master/docs/README.android
新年快樂BTW –
顯然Android的構建指令現在不同,並顯示Android Studio:https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android我有一些奇怪的啓動問題與Android Studio目前(堅持與啓動橫幅,並沒有真正啓動)。 –
我設法使用https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android –