From 5bbae955f00ee247aeb3f9d816f314c1eb0db3d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Devevey?= Date: Wed, 13 Mar 2024 00:22:52 +0100 Subject: [PATCH 1/5] update the gradle version --- gradle-javacpp-android/app/build.gradle | 39 ++++++++++--------- .../app/src/main/AndroidManifest.xml | 3 +- gradle-javacpp-android/build.gradle | 10 ++--- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/gradle-javacpp-android/app/build.gradle b/gradle-javacpp-android/app/build.gradle index 971d62c..de5f51f 100644 --- a/gradle-javacpp-android/app/build.gradle +++ b/gradle-javacpp-android/app/build.gradle @@ -1,15 +1,16 @@ plugins { id 'com.android.application' - id 'org.bytedeco.gradle-javacpp-build' version '1.5.4' + id 'org.bytedeco.gradle-javacpp-build' version '1.5.10' } android { - compileSdkVersion 30 - buildToolsVersion "30.0.2" + namespace "com.example.myapplication" + compileSdk 34 + buildToolsVersion = "34.0.0" defaultConfig { applicationId "com.example.myapplication" - minSdkVersion 16 + minSdkVersion 19 targetSdkVersion 30 versionCode 1 versionName "1.0" @@ -31,7 +32,7 @@ android { externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" - version "3.10.2" + version "3.22.1" } } compileOptions { @@ -40,21 +41,21 @@ android { } } -android.applicationVariants.all { variant -> +android.applicationVariants.configureEach { variant -> def variantName = variant.name.capitalize() // either "Debug" or "Release" - def javaCompile = project.tasks.getByName("compile${variantName}JavaWithJavac") - def generateJson = project.tasks.getByName("generateJsonModel$variantName") + def javaCompile = project.tasks.named("compile${variantName}JavaWithJavac").get() + def generateJson = project.tasks.named("generateJsonModel$variantName").get() // Compiles NativeLibraryConfig.java - task "javacppCompileJava$variantName"(type: JavaCompile) { + tasks.register("javacppCompileJava$variantName", JavaCompile) { include 'com/example/myapplication/NativeLibraryConfig.java' source = javaCompile.source classpath = javaCompile.classpath - destinationDir = javaCompile.destinationDir + destinationDirectory.set(file(javaCompile.destinationDir)) } // Parses NativeLibrary.h and outputs NativeLibrary.java - task "javacppBuildParser$variantName"(type: org.bytedeco.gradle.javacpp.BuildTask) { + tasks.register("javacppBuildParser$variantName", org.bytedeco.gradle.javacpp.BuildTask) { dependsOn "javacppCompileJava$variantName" classPath = [javaCompile.destinationDir] includePath = ["$projectDir/src/main/cpp/"] @@ -66,7 +67,7 @@ android.applicationVariants.all { variant -> javaCompile.dependsOn "javacppBuildParser$variantName" // Generates jnijavacpp.cpp and jniNativeLibrary.cpp - task "javacppBuildCompiler$variantName"(type: org.bytedeco.gradle.javacpp.BuildTask) { + tasks.register("javacppBuildCompiler$variantName", org.bytedeco.gradle.javacpp.BuildTask) { dependsOn javaCompile classPath = [javaCompile.destinationDir] classOrPackageNames = ['com.example.myapplication.NativeLibrary'] @@ -80,11 +81,11 @@ android.applicationVariants.all { variant -> } dependencies { - implementation 'org.bytedeco:javacpp:1.5.4' - implementation 'androidx.appcompat:appcompat:1.1.0' - implementation 'com.google.android.material:material:1.1.0' - implementation 'androidx.constraintlayout:constraintlayout:1.1.3' - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'org.bytedeco:javacpp:1.5.10' + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.11.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' } \ No newline at end of file diff --git a/gradle-javacpp-android/app/src/main/AndroidManifest.xml b/gradle-javacpp-android/app/src/main/AndroidManifest.xml index a1376d8..99aca45 100644 --- a/gradle-javacpp-android/app/src/main/AndroidManifest.xml +++ b/gradle-javacpp-android/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + Date: Wed, 13 Mar 2024 14:28:52 +0100 Subject: [PATCH 2/5] update readme with some instructions on how to run it --- gradle-javacpp-android/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gradle-javacpp-android/README.md b/gradle-javacpp-android/README.md index 9503a9d..4eedbc8 100644 --- a/gradle-javacpp-android/README.md +++ b/gradle-javacpp-android/README.md @@ -6,6 +6,14 @@ It was created by following the instructions available at: Along with the `NativeLibrary.h` example file from: * https://github.com/bytedeco/javacpp#accessing-native-apis +## Instructions +To generate jni stuffs, run: +```shell +./gradlew :app:javacppCompileJavaDebug && ./gradlew :app:javacppBuildParserDebug && ./gradlew :app:javacppBuildCompilerDebug +``` + +Then simply press run button in Android Studio. + ---- Author: [Samuel Audet](https://github.com/saudet/) Sponsor: [Iuliu Horga](https://github.com/iuliuh) via [xs:code](https://xscode.com/) From 761a031d07f13dc2eee1e925144adefa233ec9ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Devevey?= Date: Wed, 13 Mar 2024 14:54:51 +0100 Subject: [PATCH 3/5] replace all deprecated destinationDir by destinationDirectory --- gradle-javacpp-android/app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle-javacpp-android/app/build.gradle b/gradle-javacpp-android/app/build.gradle index de5f51f..f60a5aa 100644 --- a/gradle-javacpp-android/app/build.gradle +++ b/gradle-javacpp-android/app/build.gradle @@ -51,13 +51,13 @@ android.applicationVariants.configureEach { variant -> include 'com/example/myapplication/NativeLibraryConfig.java' source = javaCompile.source classpath = javaCompile.classpath - destinationDirectory.set(file(javaCompile.destinationDir)) + destinationDirectory.set(javaCompile.destinationDirectory) } // Parses NativeLibrary.h and outputs NativeLibrary.java tasks.register("javacppBuildParser$variantName", org.bytedeco.gradle.javacpp.BuildTask) { dependsOn "javacppCompileJava$variantName" - classPath = [javaCompile.destinationDir] + classPath = [file(javaCompile.destinationDirectory)] includePath = ["$projectDir/src/main/cpp/"] classOrPackageNames = ['com.example.myapplication.NativeLibraryConfig'] outputDirectory = file("$projectDir/src/main/java/") @@ -69,7 +69,7 @@ android.applicationVariants.configureEach { variant -> // Generates jnijavacpp.cpp and jniNativeLibrary.cpp tasks.register("javacppBuildCompiler$variantName", org.bytedeco.gradle.javacpp.BuildTask) { dependsOn javaCompile - classPath = [javaCompile.destinationDir] + classPath = [file(javaCompile.destinationDirectory)] classOrPackageNames = ['com.example.myapplication.NativeLibrary'] compile = false deleteJniFiles = false From 2a0f3433cb938d1230ca79f7b2a34fde9324aa80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Devevey?= Date: Wed, 13 Mar 2024 14:59:25 +0100 Subject: [PATCH 4/5] fix warning '[options] target value 8 is obsolete and will be removed in a future release' --- gradle-javacpp-android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle-javacpp-android/app/build.gradle b/gradle-javacpp-android/app/build.gradle index f60a5aa..b7f6411 100644 --- a/gradle-javacpp-android/app/build.gradle +++ b/gradle-javacpp-android/app/build.gradle @@ -36,8 +36,8 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } } From 351ed9f8263d5fa53a4e222bb48ec408214531e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Devevey?= Date: Thu, 14 Mar 2024 10:52:21 +0100 Subject: [PATCH 5/5] update sdk to 34 + add a comment about library variant --- gradle-javacpp-android/app/build.gradle | 4 +++- gradle-javacpp-android/app/src/main/AndroidManifest.xml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gradle-javacpp-android/app/build.gradle b/gradle-javacpp-android/app/build.gradle index b7f6411..2ecaab8 100644 --- a/gradle-javacpp-android/app/build.gradle +++ b/gradle-javacpp-android/app/build.gradle @@ -11,7 +11,7 @@ android { defaultConfig { applicationId "com.example.myapplication" minSdkVersion 19 - targetSdkVersion 30 + targetSdkVersion 34 versionCode 1 versionName "1.0" @@ -41,6 +41,8 @@ android { } } +// For library variant, please use android.libraryVariants. +// (see in plugins if you are using com.android.application or com.android.library) android.applicationVariants.configureEach { variant -> def variantName = variant.name.capitalize() // either "Debug" or "Release" def javaCompile = project.tasks.named("compile${variantName}JavaWithJavac").get() diff --git a/gradle-javacpp-android/app/src/main/AndroidManifest.xml b/gradle-javacpp-android/app/src/main/AndroidManifest.xml index 99aca45..df97917 100644 --- a/gradle-javacpp-android/app/src/main/AndroidManifest.xml +++ b/gradle-javacpp-android/app/src/main/AndroidManifest.xml @@ -8,7 +8,8 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication"> - +