【发布时间】:2016-01-01 09:53:07
【问题描述】:
aFreeRDP 是 FreeRDP 项目的 Android 客户端。
我使用的是 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。构建过程开始了,但在资源编译阶段结束了。我有当前的 23 级 android 构建工具和与 Android SDK 配套的东西。我在源代码中看到,源代码最初是针对 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 不幸的是,卸载 Wear 图像后 ADT 错误消失了,但 aFreeRDP 编译错误仍然存在。
更新 2: 我试图回到过去,我的目标是拥有一个提供 21 级但没有 23 级的 Android SDK。 我备份了我当前的 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
【问题讨论】:
-
显然 Android 构建指令现在不同了,也显示了 Android Studio:github.com/FreeRDP/FreeRDP/blob/master/docs/README.android 我目前的 Android Studio 有一些奇怪的启动问题(卡在启动横幅上,从未真正启动)。跨度>
-
我设法使用github.com/FreeRDP/FreeRDP/blob/master/docs/README.android的指示从Android Studio (v 1.5) 调试aFreeRDP
-
几年过去了,现在我又回来了。现在我更早被卡住了:
~/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin或bin目录中没有更多的arm-linux-androideabi-gcc二进制文件。这又会是一个糟糕透顶的地狱......
标签: android linux ubuntu android-ndk freerdp