它正在寻找Android平台16和21,但找不到它们,因此它会显示错误消息:
error: package android.os does not exist
这些通常安装在文件夹中
$ANDROID_SDK/platforms
(将此添加到
build-android/build.sh
,查看它在做什么:
set -v
set -x
这将显示它正在运行的命令以及shell变量的内容。)
如果打开文件
构建android/构建。上海
,在Mailcore2中,您将看到如下行:
# Start building.
ANDROID_PLATFORM=android-16
archs="armeabi armeabi-v7a x86"
代替
android-16
使用您安装的任何版本,甚至更好的版本,安装
android-16
因为它期待着。
还有
armeabi
最新的Android NDK中已经删除了对平台的支持,这给了我一些错误。所以删除
armeabi公司
只留下
armeabi-v7a
和
x86
。
下面还有:
ANDROID_PLATFORM=android-21
archs="arm64-v8a"
以及:
ANDROID_PLATFORM=android-16
cd "$current_dir/../src/java"
...
所以安装起来很简单
android-16
和
android-21
修复此问题。
我也遇到了错误:
Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-16.
查找此行:
$ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
和添加
APP_PLATFORM
这样,修复了该错误:
$ANDROID_NDK/ndk-build TARGET_PLATFORM=$ANDROID_PLATFORM APP_PLATFORM=$ANDROID_PLATFORM TARGET_ARCH_ABI=$TARGET_ARCH_ABI \
我也遇到了错误:
*** Android NDK: Invalid NDK_TOOLCHAIN_VERSION value: 4.9. GCC is no longer supported. See https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md. . Stop.
显然,GCC不再受支持。我已安装
叮当声
,然后它继续编译项目,但由于另一个错误而停止。
此外,我必须删除包含以下内容的行:
NDK_TOOLCHAIN_VERSION=4.9 \
如上所述
here
。
我收到错误:
MailCore2/build-android/jni/../../src/java/TypesUtils.cpp:84:32: error: member access into incomplete type 'const std::type_info'
MCLog("info name: %s", info->name());
^
这显然与
this issue
:
GCC似乎只是隐式声明
std::type_info
。在使用Clang和libstdc++进行典型的Hello World时,通常第一次遇到此问题。Xeo 2013年2月26日20:42
我还不能解决这个问题,但我会在有机会的时候更新这篇文章。