From d8e002e9d7583a8f92a2623d001748c1ecaca192 Mon Sep 17 00:00:00 2001 From: Wook Song Date: Sun, 24 Mar 2024 19:58:00 +0900 Subject: [PATCH] Android: Support API Level 34 with GStreamer-1.24 This patch mainly revises the gradle and ndk-build build scripts to support Android API Level 34 with GStreamer v1.24 (the latest GST release as of 2024.03). Signed-off-by: Wook Song --- .gitattributes | 1 + java/android/build.gradle | 24 ---------------------- java/android/nnstreamer/build.gradle | 16 ++++++++++++--- .../nnstreamer/src/main/AndroidManifest.xml | 5 +---- .../nnstreamer/src/main/jni/Android-nnstreamer.mk | 4 ++-- java/android/nnstreamer/src/main/jni/Android.mk | 11 ++++++++-- .../src/main/jni/nnstreamer-native-api.c | 12 +++++++++++ java/android/settings.gradle | 1 - java/build-nnstreamer-android.sh | 1 - java/build-nnstreamer-ubuntu.sh | 0 10 files changed, 38 insertions(+), 37 deletions(-) create mode 100644 .gitattributes delete mode 100644 java/android/build.gradle delete mode 100644 java/android/settings.gradle mode change 100644 => 100755 java/build-nnstreamer-android.sh mode change 100644 => 100755 java/build-nnstreamer-ubuntu.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..69b47b5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.bat text eol=crlf diff --git a/java/android/build.gradle b/java/android/build.gradle deleted file mode 100644 index 3786473..0000000 --- a/java/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - repositories { - jcenter() - google() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.3.1' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - jcenter() - google() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/java/android/nnstreamer/build.gradle b/java/android/nnstreamer/build.gradle index 8ac64cc..351c73b 100644 --- a/java/android/nnstreamer/build.gradle +++ b/java/android/nnstreamer/build.gradle @@ -1,16 +1,17 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 28 - buildToolsVersion '28.0.3' + namespace "org.nnsuite.nnstreamer" + compileSdk 34 defaultConfig { minSdkVersion 24 - targetSdkVersion 28 + targetSdkVersion 34 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { ndkBuild { + ndkVersion "25.2.9519653" def gstRoot if (project.hasProperty('gstAndroidRoot')) @@ -65,6 +66,13 @@ android { } } } + compileOptions { + // Flag to enable support for the new language APIs + coreLibraryDesugaringEnabled true + // Sets Java compatibility to Java 8 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } buildTypes { debug { testCoverageEnabled true @@ -92,6 +100,7 @@ android { jniLibs.srcDirs += project.properties['NNFW_EXT_LIBRARY_PATH'] println 'Set jniLibs.srcDirs includes libraries for NNFW' } + } } packagingOptions { @@ -103,6 +112,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:28.0.0' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' testImplementation 'junit:junit:4.13.1' androidTestImplementation 'com.android.support.test:rules:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2' diff --git a/java/android/nnstreamer/src/main/AndroidManifest.xml b/java/android/nnstreamer/src/main/AndroidManifest.xml index 5d9f71a..62b3404 100644 --- a/java/android/nnstreamer/src/main/AndroidManifest.xml +++ b/java/android/nnstreamer/src/main/AndroidManifest.xml @@ -1,9 +1,6 @@ - + - - = 24 +/** + * @brief External function from GStreamer Android. (Dummy function) + */ +static void gst_android_init (JNIEnv * env, jobject context) { + do { + + } while(0); +} +#else /** * @brief External function from GStreamer Android. */ extern void gst_android_init (JNIEnv * env, jobject context); +#endif /* GST_VERSION_MINOR >= 24 */ #endif /* __ANDROID__ */ /** diff --git a/java/android/settings.gradle b/java/android/settings.gradle deleted file mode 100644 index f2817c7..0000000 --- a/java/android/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':nnstreamer' diff --git a/java/build-nnstreamer-android.sh b/java/build-nnstreamer-android.sh old mode 100644 new mode 100755 index c3e71f2..d3b1260 --- a/java/build-nnstreamer-android.sh +++ b/java/build-nnstreamer-android.sh @@ -499,7 +499,6 @@ sed -i "s|mlApiRoot=ml-api-path|mlApiRoot=$ml_api_dir|" gradle.properties sed -i "s|nnstreamerEdgeRoot=nnstreamer-edge-path|nnstreamerEdgeRoot=$nnstreamer_edge_dir|" gradle.properties sed -i "s|nnstreamerRoot=nnstreamer-path|nnstreamerRoot=$nnstreamer_dir|" gradle.properties sed -i "s|gstAndroidRoot=gstreamer-path|gstAndroidRoot=$gstreamer_dir|" gradle.properties -sed -i "s|ndk.dir=ndk-path|ndk.dir=$android_ndk_dir|" local.properties sed -i "s|sdk.dir=sdk-path|sdk.dir=$android_sdk_dir|" local.properties # Update SNAP option diff --git a/java/build-nnstreamer-ubuntu.sh b/java/build-nnstreamer-ubuntu.sh old mode 100644 new mode 100755 -- 2.7.4