diff --git a/examples/android/helloworld/app/build.gradle b/examples/android/helloworld/app/build.gradle index 1d09fdc1802..4c14a4fd755 100644 --- a/examples/android/helloworld/app/build.gradle +++ b/examples/android/helloworld/app/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion 26 defaultConfig { applicationId "io.grpc.android.cpp.helloworldexample" - minSdkVersion 14 + minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" diff --git a/examples/csharp/HelloworldUnity/ProjectSettings/ProjectSettings.asset b/examples/csharp/HelloworldUnity/ProjectSettings/ProjectSettings.asset index b1e2fb0a430..f629a22e4f3 100644 --- a/examples/csharp/HelloworldUnity/ProjectSettings/ProjectSettings.asset +++ b/examples/csharp/HelloworldUnity/ProjectSettings/ProjectSettings.asset @@ -153,7 +153,7 @@ PlayerSettings: iOS: com.jattermusch.grpc.example buildNumber: {} AndroidBundleVersionCode: 1 - AndroidMinSdkVersion: 16 + AndroidMinSdkVersion: 21 AndroidTargetSdkVersion: 0 AndroidPreferredInstallLocation: 1 aotOptions: diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h index 96ef901c728..5d0458c53b1 100644 --- a/include/grpc/impl/codegen/port_platform.h +++ b/include/grpc/impl/codegen/port_platform.h @@ -126,11 +126,15 @@ #elif defined(ANDROID) || defined(__ANDROID__) #define GPR_PLATFORM_STRING "android" #define GPR_ANDROID 1 -#ifdef __ANDROID_API__ +#ifndef __ANDROID_API__ +#error "__ANDROID_API__ must be defined for Android builds." +#endif +#if __ANDROID_API__ < 21 +#error "Requires Android API v21 and above" +#endif #if (__ANDROID_API__) >= 23 #define GPR_SUPPORT_BINDER_TRANSPORT 1 #endif -#endif // TODO(apolcyn): re-evaluate support for c-ares // on android after upgrading our c-ares dependency. // See https://github.com/grpc/grpc/issues/18038. diff --git a/src/android/test/interop/app/build.gradle b/src/android/test/interop/app/build.gradle index 5bedc43c9ef..e5367540109 100644 --- a/src/android/test/interop/app/build.gradle +++ b/src/android/test/interop/app/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion 26 defaultConfig { applicationId "io.grpc.android.interop.cpp" - minSdkVersion 14 + minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" diff --git a/src/csharp/experimental/build_native_ext_for_android.sh b/src/csharp/experimental/build_native_ext_for_android.sh index 2749d4e0fdc..59525ccbdf6 100755 --- a/src/csharp/experimental/build_native_ext_for_android.sh +++ b/src/csharp/experimental/build_native_ext_for_android.sh @@ -36,7 +36,7 @@ cd build # ANDROID_ABI in ('arm64-v8a', 'armeabi-v7a') # e.g. ANDROID_ABI=armeabi-v7a -# android-19 corresponds to Kitkat 4.4 +# android-21 corresponds to Lollipop 5.0 ${ANDROID_SDK_CMAKE} ../.. \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_PATH}/build/cmake/android.toolchain.cmake" \ -DCMAKE_ANDROID_NDK="${ANDROID_NDK_PATH}" \ @@ -45,7 +45,7 @@ ${ANDROID_SDK_CMAKE} ../.. \ -DRUN_HAVE_STD_REGEX=0 \ -DRUN_HAVE_STEADY_CLOCK=0 \ -DCMAKE_BUILD_TYPE=Release \ - -DANDROID_PLATFORM=android-19 \ + -DANDROID_PLATFORM=android-21 \ -DANDROID_ABI="${ANDROID_ABI}" \ -DANDROID_NDK="${ANDROID_NDK_PATH}" \ -DgRPC_XDS_USER_AGENT_IS_CSHARP=ON