diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 16d23744e..f9f45fa54 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -168,8 +168,6 @@ jobs: build-android: name: Build Android (on Linux) - # Renable once it is working again. - if: false runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/android/app/build.gradle b/android/app/build.gradle index dba6624f2..06e8cab0c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -33,7 +33,6 @@ android { } } - ndkVersion "21.3.6528147" externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" @@ -52,16 +51,17 @@ android { fbsFiles.forEach{ commandLineArgs.add(it.path) } + commandLine commandLineArgs doFirst { delete "$outputCppDir/" mkdir "$outputCppDir/" } + doLast { - if (execResult.getExitValue() != 0) { - println(standardOutput.toString()) - throw new GradleException("flatc command line failed") + if (executionResult.get().exitValue != 0) { + throw new GradleException("flatc failed with: ${executionResult.get().toString()}") } } } @@ -74,6 +74,10 @@ android { standardOutput = new ByteArrayOutputStream() errorOutput = new ByteArrayOutputStream() + + setErrorOutput(errorOutput) + setStandardOutput(standardOutput) + def commandLineArgs = ['flatc', '-o', outputKotlinDir, '--kotlin'] fbsFiles.forEach{ commandLineArgs.add(it.path) @@ -85,17 +89,16 @@ android { mkdir "$outputKotlinDir/" } doLast { - if (execResult.getExitValue() != 0) { - println(standardOutput.toString()) - throw new GradleException("flatc command line failed") + if (executionResult.get().exitValue != 0) { + throw new GradleException("flatc failed with: ${executionResult.get().toString()}") } } } afterEvaluate { - android.applicationVariants.all { variant -> - variant.javaCompiler.dependsOn(generateFbsKotlin) - variant.javaCompiler.dependsOn(generateFbsCpp) + tasks.named("preBuild") { + dependsOn(generateFbsKotlin) + dependsOn(generateFbsCpp) } } diff --git a/android/app/src/main/cpp/generated/animal_generated.h b/android/app/src/main/cpp/generated/animal_generated.h index 1ba9b0900..aa23ec381 100644 --- a/android/app/src/main/cpp/generated/animal_generated.h +++ b/android/app/src/main/cpp/generated/animal_generated.h @@ -35,7 +35,7 @@ struct Animal FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { verifier.VerifyString(name()) && VerifyOffset(verifier, VT_SOUND) && verifier.VerifyString(sound()) && - VerifyField(verifier, VT_WEIGHT) && + VerifyField(verifier, VT_WEIGHT, 2) && verifier.EndTable(); } }; @@ -57,7 +57,6 @@ struct AnimalBuilder { : fbb_(_fbb) { start_ = fbb_.StartTable(); } - AnimalBuilder &operator=(const AnimalBuilder &); flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = flatbuffers::Offset(end); diff --git a/android/app/src/main/java/generated/com/fbs/app/Animal.kt b/android/app/src/main/java/generated/com/fbs/app/Animal.kt index 89da64635..214e6155a 100644 --- a/android/app/src/main/java/generated/com/fbs/app/Animal.kt +++ b/android/app/src/main/java/generated/com/fbs/app/Animal.kt @@ -7,7 +7,6 @@ import kotlin.math.sign import com.google.flatbuffers.* @Suppress("unused") -@ExperimentalUnsignedTypes class Animal : Table() { fun __init(_i: Int, _bb: ByteBuffer) { diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 00e33edef..aa991fcea 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/idl_gen_kotlin.cpp b/src/idl_gen_kotlin.cpp index 9561e996e..09c2bc4a5 100644 --- a/src/idl_gen_kotlin.cpp +++ b/src/idl_gen_kotlin.cpp @@ -134,9 +134,10 @@ class KotlinGenerator : public BaseGenerator { code += "import com.google.flatbuffers.*\n\n"; } code += classcode; - auto filename = namer_.Directories(ns) - + namer_.File(defname, SkipFile::Suffix); - + const std::string dirs = namer_.Directories(ns); + EnsureDirExists(dirs); + const std::string filename = + dirs + namer_.File(defname, /*skips=*/SkipFile::Suffix); return SaveFile(filename.c_str(), code, false); }