diff --git a/README.md b/README.md
index c6402df854..66129069ff 100644
--- a/README.md
+++ b/README.md
@@ -74,7 +74,7 @@ of the target you wish to build.
- __Windows__: Windows 10 (x86_64, x86, Arm64, Arm64EC)
- __Linux__: Mainstream Linux distributions (x86_64, Arm64/aarch64, (32 bit Arm systems like armv7 should work but are not regularly tested))
- __iOS__: iOS 12 (Arm64, Arm64e, x86_64 (Simulator))
-- __Android__: Android 5 - Lollipop (API Level 21) (arm64-v8a, armeabi-v7a, x86_64, x86)
+- __Android__: Android 7 - Nougat (API Level 24) (arm64-v8a, armeabi-v7a, x86_64, x86)
## Contributing
diff --git a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
index e192259af4..0b364143f2 100644
--- a/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
+++ b/examples/DemoRunner/Builds/Android/app/CMakeLists.txt
@@ -14,7 +14,7 @@ add_subdirectory (${OBOE_DIR} ./oboe)
add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c")
set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression")
-add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=23]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_CONTENT_SHARING=1]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.6]] [[-DJUCE_APP_VERSION_HEX=0x80006]])
+add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=24]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_CONTENT_SHARING=1]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.6]] [[-DJUCE_APP_VERSION_HEX=0x80006]])
include_directories( AFTER
"../../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src"
diff --git a/examples/DemoRunner/Builds/Android/app/build.gradle b/examples/DemoRunner/Builds/Android/app/build.gradle
index 6fd373d1b8..6cabc5f3f7 100644
--- a/examples/DemoRunner/Builds/Android/app/build.gradle
+++ b/examples/DemoRunner/Builds/Android/app/build.gradle
@@ -24,11 +24,11 @@ android {
defaultConfig {
applicationId "com.rmsl.jucedemorunner"
- minSdkVersion 23
+ minSdkVersion 24
targetSdkVersion 34
externalNativeBuild {
cmake {
- arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
+ arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-24", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
}
}
}
diff --git a/examples/DemoRunner/DemoRunner.jucer b/examples/DemoRunner/DemoRunner.jucer
index 8a18d99420..6aab7747b9 100644
--- a/examples/DemoRunner/DemoRunner.jucer
+++ b/examples/DemoRunner/DemoRunner.jucer
@@ -93,7 +93,7 @@
-
+ gradleToolchainVersion="3.6" androidMinimumSDK="24">
-
diff --git a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
index 218973ad3f..a3344a9f26 100644
--- a/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
+++ b/extras/AudioPluginHost/Builds/Android/app/CMakeLists.txt
@@ -14,7 +14,7 @@ add_subdirectory (${OBOE_DIR} ./oboe)
add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c")
set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression")
-add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=23]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=1.0.0]] [[-DJUCE_APP_VERSION_HEX=0x10000]])
+add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=24]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=1.0.0]] [[-DJUCE_APP_VERSION_HEX=0x10000]])
include_directories( AFTER
"../../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src"
diff --git a/extras/AudioPluginHost/Builds/Android/app/build.gradle b/extras/AudioPluginHost/Builds/Android/app/build.gradle
index f62cb360d8..b54f907550 100644
--- a/extras/AudioPluginHost/Builds/Android/app/build.gradle
+++ b/extras/AudioPluginHost/Builds/Android/app/build.gradle
@@ -24,11 +24,11 @@ android {
defaultConfig {
applicationId "com.juce.audiopluginhost"
- minSdkVersion 23
+ minSdkVersion 24
targetSdkVersion 34
externalNativeBuild {
cmake {
- arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-23", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
+ arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-24", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
}
}
}
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
index daed4e36f3..a5fd7e0851 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/CMakeLists.txt
@@ -14,7 +14,7 @@ add_subdirectory (${OBOE_DIR} ./oboe)
add_library("cpufeatures" STATIC "${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c")
set_source_files_properties("${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c" PROPERTIES COMPILE_FLAGS "-Wno-sign-conversion -Wno-gnu-statement-expression")
-add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=21]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=1.0.0]] [[-DJUCE_APP_VERSION_HEX=0x10000]])
+add_definitions([[-DJUCE_ANDROID=1]] [[-DJUCE_ANDROID_API_VERSION=24]] [[-DJUCE_PUSH_NOTIFICATIONS=1]] [[-DJUCE_PUSH_NOTIFICATIONS_ACTIVITY="com/rmsl/juce/JuceActivity"]] [[-DJUCE_ANDROID_GL_ES_VERSION_3_0=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=1.0.0]] [[-DJUCE_APP_VERSION_HEX=0x10000]])
include_directories( AFTER
"../../../JuceLibraryCode"
diff --git a/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle b/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle
index 1fa040ad10..2249c40f0b 100644
--- a/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle
+++ b/extras/NetworkGraphicsDemo/Builds/Android/app/build.gradle
@@ -24,11 +24,11 @@ android {
defaultConfig {
applicationId "com.juce.networkgraphicsdemo"
- minSdkVersion 21
+ minSdkVersion 24
targetSdkVersion 34
externalNativeBuild {
cmake {
- arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-21", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
+ arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_PLATFORM=android-24", "-DANDROID_STL=c++_static", "-DANDROID_CPP_FEATURES=exceptions rtti", "-DANDROID_ARM_MODE=arm", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_WEAK_API_DEFS=ON", "-DCMAKE_CXX_STANDARD=17", "-DCMAKE_CXX_EXTENSIONS=OFF"
}
}
}
diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
index 8667a25400..a412b4b80a 100644
--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
+++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h
@@ -131,7 +131,7 @@ public:
androidManifestCustomXmlElements (settings, Ids::androidManifestCustomXmlElements, getUndoManager()),
androidGradleSettingsContent (settings, Ids::androidGradleSettingsContent, getUndoManager()),
androidVersionCode (settings, Ids::androidVersionCode, getUndoManager(), "1"),
- androidMinimumSDK (settings, Ids::androidMinimumSDK, getUndoManager(), "21"),
+ androidMinimumSDK (settings, Ids::androidMinimumSDK, getUndoManager(), "24"),
androidTargetSDK (settings, Ids::androidTargetSDK, getUndoManager(), "34"),
androidTheme (settings, Ids::androidTheme, getUndoManager()),
androidExtraAssetsFolder (settings, Ids::androidExtraAssetsFolder, getUndoManager()),
@@ -1145,7 +1145,7 @@ private:
"An integer value that represents the version of the application code, relative to other versions.");
props.add (new TextPropertyComponent (androidMinimumSDK, "Minimum SDK Version", 32, false),
- "The number of the minimum version of the Android SDK that the app requires (must be 21 or higher).");
+ "The number of the minimum version of the Android SDK that the app requires (must be 24 or higher).");
props.add (new TextPropertyComponent (androidTargetSDK, "Target SDK Version", 32, false),
"The number of the version of the Android SDK that the app is targeting.");
@@ -1571,8 +1571,7 @@ private:
if (isContentSharingEnabled())
defines.set ("JUCE_CONTENT_SHARING", "1");
- if (supportsGLv3())
- defines.set ("JUCE_ANDROID_GL_ES_VERSION_3_0", "1");
+ defines.set ("JUCE_ANDROID_GL_ES_VERSION_3_0", "1");
if (areRemoteNotificationsEnabled())
{
@@ -1628,7 +1627,7 @@ private:
libraries.add ("log");
libraries.add ("android");
- libraries.add (supportsGLv3() ? "GLESv3" : "GLESv2");
+ libraries.add ("GLESv3");
libraries.add ("EGL");
return libraries;
@@ -1812,7 +1811,7 @@ private:
if (glVersion == nullptr)
glVersion = manifest.createNewChildElement ("uses-feature");
- setAttributeIfNotPresent (*glVersion, "android:glEsVersion", (static_cast (androidMinimumSDK.get()) >= 18 ? "0x00030000" : "0x00020000"));
+ setAttributeIfNotPresent (*glVersion, "android:glEsVersion", "0x00030000");
setAttributeIfNotPresent (*glVersion, "android:required", "true");
}
}
@@ -1851,8 +1850,7 @@ private:
if (androidScreenOrientation.get() == "landscape")
{
- setAttributeIfNotPresent (*act, "android:screenOrientation",
- static_cast (androidMinimumSDK.get()) < 18 ? "sensorLandscape" : "userLandscape");
+ setAttributeIfNotPresent (*act, "android:screenOrientation", "userLandscape");
}
else
{
@@ -2015,11 +2013,6 @@ private:
return escapedArray.joinIntoString (", ");
}
- bool supportsGLv3() const
- {
- return (static_cast (androidMinimumSDK.get()) >= 18);
- }
-
//==============================================================================
const File AndroidExecutable;