Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run Build failed on Android: error: no matching constructor for initialization of <<Object>> #259

Closed
4 tasks done
baronha opened this issue Oct 27, 2024 · 16 comments · Fixed by #260 or #283
Closed
4 tasks done
Labels
nitro-core Issue is related to the Nitro Modules core runtime/C++ codebase

Comments

@baronha
Copy link

baronha commented Oct 27, 2024

What's happening?

/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
struct Result {
...

My code: https://github.com/baronha/react-native-multiple-image-picker/tree/nitro
PR: baronha/react-native-multiple-image-picker#173

Reproduceable Code

Full code: https://github.com/baronha/react-native-multiple-image-picker/tree/nitro

Relevant log output

/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp

In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp:15:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JFunc_void_std__vector_Result_.hpp:16:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
      return Result(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
    explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
  struct Result {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided

Device

Emulator Android

Nitro Modules Version

0.13.0

Nitrogen Version

Can you reproduce this issue in the Nitro Example app here?

Yes, I can reproduce the same issue in the Example app here

Additional information

@baronha baronha added the nitro-core Issue is related to the Nitro Modules core runtime/C++ codebase label Oct 27, 2024
@mrousavy
Copy link
Owner

Please paste the small repro code here.

@baronha
Copy link
Author

baronha commented Oct 28, 2024

result:

type ResultType = 'image' | 'video'

export interface Result {
  path: string
  fileName: string
  localIdentifier: string
  width: number
  height: number
  mime: string
  size: number
  bucketId?: number
  realPath?: string
  parentFolderName?: string
  creationDate?: number
  type?: ResultType
  duration?: number
  thumbnail?: string
  crop?: boolean
}

HybridObject:

import { type HybridObject } from 'react-native-nitro-modules'
import { NitroConfig, Result } from '../types'

export interface MultipleImagePicker
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
  openPicker(
    config: NitroConfig,
    resolved: (result: Result[]) => void,
    rejected: (reject: number) => void
  ): void
}

On iOS it's completely normal. Smooth.

@mrousavy
Copy link
Owner

Created a fix here: #260

@baronha
Copy link
Author

baronha commented Oct 30, 2024

Thanks @mrousavy . Please release it 🙏🙏🙏

@mrousavy
Copy link
Owner

have some patience. 🙂

@baronha
Copy link
Author

baronha commented Oct 30, 2024

have some patience. 🙂

Yah sir !!!
I will be patient. But I also wanted to finish the library to tell the world that I was using Nitro Module.
Why can't I install the nitro module through the main github branch?

@baronha
Copy link
Author

baronha commented Oct 30, 2024

Oh @mrousavy .
Thank you for your efforts but it seems the error still exists when I have installed the latest version 0.14.0 of nitro modules

baronha/react-native-multiple-image-picker@48e4d12

@mrousavy
Copy link
Owner

Hm, can you reproduce this error in the example app here please? I created this example struct which is used in a HybridObject:

// A plain interface that does not inherit from `HybridObject` becomes a `struct` in C++.
// They can only have properties (get + set). No methods or native state.
export interface Car {
year: number
make: string
model: string
power: number
powertrain: Powertrain
driver?: Person
isFast: boolean
}

This one has a boolean property - that's just like your example, no?

@mrousavy
Copy link
Owner

This is what got generated - a JNI binding to jboolean:

[[maybe_unused]]
Car toCpp() const {
static const auto clazz = javaClassStatic();
static const auto fieldYear = clazz->getField<double>("year");
double year = this->getFieldValue(fieldYear);
static const auto fieldMake = clazz->getField<jni::JString>("make");
jni::local_ref<jni::JString> make = this->getFieldValue(fieldMake);
static const auto fieldModel = clazz->getField<jni::JString>("model");
jni::local_ref<jni::JString> model = this->getFieldValue(fieldModel);
static const auto fieldPower = clazz->getField<double>("power");
double power = this->getFieldValue(fieldPower);
static const auto fieldPowertrain = clazz->getField<JPowertrain>("powertrain");
jni::local_ref<JPowertrain> powertrain = this->getFieldValue(fieldPowertrain);
static const auto fieldDriver = clazz->getField<JPerson>("driver");
jni::local_ref<JPerson> driver = this->getFieldValue(fieldDriver);
static const auto fieldIsFast = clazz->getField<jboolean>("isFast");
jboolean isFast = this->getFieldValue(fieldIsFast);
return Car(
year,
make->toStdString(),
model->toStdString(),
power,
powertrain->toCpp(),
driver != nullptr ? std::make_optional(driver->toCpp()) : std::nullopt,
static_cast<bool>(isFast)
);
}

@baronha
Copy link
Author

baronha commented Oct 31, 2024

My code:

type ResultType = 'image' | 'video'

export interface Result {
  path: string
  fileName: string
  localIdentifier: string
  width: number
  height: number
  mime: string
  size: number
  bucketId?: number
  realPath?: string
  parentFolderName?: string
  creationDate?: number
  type: ResultType
  duration?: number
  thumbnail?: string
  crop?: boolean
}

Code gen:

///
/// JResult.hpp
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © 2024 Marc Rousavy @ Margelo
///

#pragma once

#include <fbjni/fbjni.h>
#include "Result.hpp"

#include "JResultType.hpp"
#include "ResultType.hpp"
#include <optional>
#include <string>

namespace margelo::nitro::multipleimagepicker {

  using namespace facebook;

  /**
   * The C++ JNI bridge between the C++ struct "Result" and the the Kotlin data class "Result".
   */
  struct JResult final: public jni::JavaClass<JResult> {
  public:
    static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/multipleimagepicker/Result;";

  public:
    /**
     * Convert this Java/Kotlin-based struct to the C++ struct Result by copying all values to C++.
     */
    [[maybe_unused]]
    Result toCpp() const {
      static const auto clazz = javaClassStatic();
      static const auto fieldPath = clazz->getField<jni::JString>("path");
      jni::local_ref<jni::JString> path = this->getFieldValue(fieldPath);
      static const auto fieldFileName = clazz->getField<jni::JString>("fileName");
      jni::local_ref<jni::JString> fileName = this->getFieldValue(fieldFileName);
      static const auto fieldLocalIdentifier = clazz->getField<jni::JString>("localIdentifier");
      jni::local_ref<jni::JString> localIdentifier = this->getFieldValue(fieldLocalIdentifier);
      static const auto fieldWidth = clazz->getField<double>("width");
      double width = this->getFieldValue(fieldWidth);
      static const auto fieldHeight = clazz->getField<double>("height");
      double height = this->getFieldValue(fieldHeight);
      static const auto fieldMime = clazz->getField<jni::JString>("mime");
      jni::local_ref<jni::JString> mime = this->getFieldValue(fieldMime);
      static const auto fieldSize = clazz->getField<double>("size");
      double size = this->getFieldValue(fieldSize);
      static const auto fieldBucketId = clazz->getField<jni::JDouble>("bucketId");
      jni::local_ref<jni::JDouble> bucketId = this->getFieldValue(fieldBucketId);
      static const auto fieldRealPath = clazz->getField<jni::JString>("realPath");
      jni::local_ref<jni::JString> realPath = this->getFieldValue(fieldRealPath);
      static const auto fieldParentFolderName = clazz->getField<jni::JString>("parentFolderName");
      jni::local_ref<jni::JString> parentFolderName = this->getFieldValue(fieldParentFolderName);
      static const auto fieldCreationDate = clazz->getField<jni::JDouble>("creationDate");
      jni::local_ref<jni::JDouble> creationDate = this->getFieldValue(fieldCreationDate);
      static const auto fieldType = clazz->getField<JResultType>("type");
      jni::local_ref<JResultType> type = this->getFieldValue(fieldType);
      static const auto fieldDuration = clazz->getField<jni::JDouble>("duration");
      jni::local_ref<jni::JDouble> duration = this->getFieldValue(fieldDuration);
      static const auto fieldThumbnail = clazz->getField<jni::JString>("thumbnail");
      jni::local_ref<jni::JString> thumbnail = this->getFieldValue(fieldThumbnail);
      static const auto fieldCrop = clazz->getField<jni::JBoolean>("crop");
      jni::local_ref<jni::JBoolean> crop = this->getFieldValue(fieldCrop);
      return Result(
        path->toStdString(),
        fileName->toStdString(),
        localIdentifier->toStdString(),
        width,
        height,
        mime->toStdString(),
        size,
        bucketId != nullptr ? std::make_optional(bucketId->value()) : std::nullopt,
        realPath != nullptr ? std::make_optional(realPath->toStdString()) : std::nullopt,
        parentFolderName != nullptr ? std::make_optional(parentFolderName->toStdString()) : std::nullopt,
        creationDate != nullptr ? std::make_optional(creationDate->value()) : std::nullopt,
        type->toCpp(),
        duration != nullptr ? std::make_optional(duration->value()) : std::nullopt,
        thumbnail != nullptr ? std::make_optional(thumbnail->toStdString()) : std::nullopt,
        crop != nullptr ? std::make_optional(crop->value()) : std::nullopt
      );
    }

  public:
    /**
     * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
     */
    [[maybe_unused]]
    static jni::local_ref<JResult::javaobject> fromCpp(const Result& value) {
      return newInstance(
        jni::make_jstring(value.path),
        jni::make_jstring(value.fileName),
        jni::make_jstring(value.localIdentifier),
        value.width,
        value.height,
        jni::make_jstring(value.mime),
        value.size,
        value.bucketId.has_value() ? jni::JDouble::valueOf(value.bucketId.value()) : nullptr,
        value.realPath.has_value() ? jni::make_jstring(value.realPath.value()) : nullptr,
        value.parentFolderName.has_value() ? jni::make_jstring(value.parentFolderName.value()) : nullptr,
        value.creationDate.has_value() ? jni::JDouble::valueOf(value.creationDate.value()) : nullptr,
        JResultType::fromCpp(value.type),
        value.duration.has_value() ? jni::JDouble::valueOf(value.duration.value()) : nullptr,
        value.thumbnail.has_value() ? jni::make_jstring(value.thumbnail.value()) : nullptr,
        value.crop.has_value() ? jni::JBoolean::valueOf(value.crop.value()) : nullptr
      );
    }
  };

} // namespace margelo::nitro::multipleimagepicker

@mrousavy
Copy link
Owner

mrousavy commented Nov 4, 2024

@baronha again; can you reproduce this error in the example app here please?

@baronha
Copy link
Author

baronha commented Nov 5, 2024

Error:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':baronha_react-native-multiple-image-picker:buildCMakeDebug[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `/Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a'
  [1/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/src/main/cpp/cpp-adapter.cpp.o
  [2/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o
  FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o 
  /Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp
  In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp:15:
  In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JFunc_void_std__vector_Result_.hpp:16:
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
        return Result(
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
      explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
    struct Result {
           ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
  1 error generated.
  [3/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o
  FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o 
  /Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp
  In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
  In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:15:
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JPickerCropConfig.hpp:35:14: error: no matching conversion for functional-style cast from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig'
        return PickerCropConfig(
               ^~~~~~~~~~~~~~~~~
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'const PickerCropConfig' for 1st argument
    struct PickerCropConfig {
           ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig' for 1st argument
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:35:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 1st argument
      explicit PickerCropConfig(std::optional<bool> circle): circle(circle) {}
               ^
  In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
  In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:17:
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
        return Result(
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
      explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
    struct Result {
           ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
  In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:109:14: error: no matching constructor for initialization of 'NitroConfig'
        return NitroConfig(
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:86:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 6th argument
      explicit NitroConfig(MediaType mediaType, std::vector<Result> selectedAssets, SelectBoxStyle selectBoxStyle, SelectMode selectMode, std::optional<double> numberOfColumn, std::optional<bool> isPreview, std::optional<double> primaryColor, std::optional<bool> allowedCamera, std::optional<bool> allowSwipeToSelect, std::optional<double> spacing, std::optional<bool> isHiddenPreviewButton, std::optional<bool> isHiddenOriginalButton, std::optional<bool> isShowPreviewList, std::optional<bool> allowHapticTouchPreview, std::optional<bool> isShowAssetNumber, std::optional<bool> allowedLimit, std::optional<double> maxPhoto, std::optional<double> maxVideo, std::optional<double> maxSelect, std::optional<double> maxVideoDuration, std::optional<double> minVideoDuration, std::optional<double> maxFileSize, std::optional<double> videoQuality, std::optional<double> imageQuality, Presentation presentation, std::optional<PickerCropConfig> crop, std::optional<Text> text, Language language): mediaType(mediaType), selectedAssets(selectedAssets), selectBoxStyle(selectBoxStyle), selectMode(selectMode), numberOfColumn(numberOfColumn), isPreview(isPreview), primaryColor(primaryColor), allowedCamera(allowedCamera), allowSwipeToSelect(allowSwipeToSelect), spacing(spacing), isHiddenPreviewButton(isHiddenPreviewButton), isHiddenOriginalButton(isHiddenOriginalButton), isShowPreviewList(isShowPreviewList), allowHapticTouchPreview(allowHapticTouchPreview), isShowAssetNumber(isShowAssetNumber), allowedLimit(allowedLimit), maxPhoto(maxPhoto), maxVideo(maxVideo), maxSelect(maxSelect), maxVideoDuration(maxVideoDuration), minVideoDuration(minVideoDuration), maxFileSize(maxFileSize), videoQuality(videoQuality), imageQuality(imageQuality), presentation(presentation), crop(crop), text(text), language(language) {}
               ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 28 were provided
    struct NitroConfig {
           ^
  /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 28 were provided
  3 errors generated.
  [4/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/shared/c++/HybridMultipleImagePickerSpec.cpp.o
  ninja: build stopped: subcommand failed.
  
  C++ build system [build] failed while executing:
      /Users/mac/Library/Android/sdk/cmake/3.22.1/bin/ninja \
        -C \
        /Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a \
        MultipleImagePicker
    from /Users/mac/project/react-native-multiple-image-picker/android

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':baronha_react-native-multiple-image-picker:buildCMakeDebug[arm64-v8a]'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:130)
	at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:128)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
	at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
Caused by: org.gradle.internal.UncheckedException: com.android.ide.common.process.ProcessException: ninja: Entering directory `/Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a'
[1/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/src/main/cpp/cpp-adapter.cpp.o
[2/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o
FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o 
/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp:15:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JFunc_void_std__vector_Result_.hpp:16:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
      return Result(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
    explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
  struct Result {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
1 error generated.
[3/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o
FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o 
/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:15:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JPickerCropConfig.hpp:35:14: error: no matching conversion for functional-style cast from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig'
      return PickerCropConfig(
             ^~~~~~~~~~~~~~~~~
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'const PickerCropConfig' for 1st argument
  struct PickerCropConfig {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig' for 1st argument
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:35:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 1st argument
    explicit PickerCropConfig(std::optional<bool> circle): circle(circle) {}
             ^
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:17:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
      return Result(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
    explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
  struct Result {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:109:14: error: no matching constructor for initialization of 'NitroConfig'
      return NitroConfig(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:86:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 6th argument
    explicit NitroConfig(MediaType mediaType, std::vector<Result> selectedAssets, SelectBoxStyle selectBoxStyle, SelectMode selectMode, std::optional<double> numberOfColumn, std::optional<bool> isPreview, std::optional<double> primaryColor, std::optional<bool> allowedCamera, std::optional<bool> allowSwipeToSelect, std::optional<double> spacing, std::optional<bool> isHiddenPreviewButton, std::optional<bool> isHiddenOriginalButton, std::optional<bool> isShowPreviewList, std::optional<bool> allowHapticTouchPreview, std::optional<bool> isShowAssetNumber, std::optional<bool> allowedLimit, std::optional<double> maxPhoto, std::optional<double> maxVideo, std::optional<double> maxSelect, std::optional<double> maxVideoDuration, std::optional<double> minVideoDuration, std::optional<double> maxFileSize, std::optional<double> videoQuality, std::optional<double> imageQuality, Presentation presentation, std::optional<PickerCropConfig> crop, std::optional<Text> text, Language language): mediaType(mediaType), selectedAssets(selectedAssets), selectBoxStyle(selectBoxStyle), selectMode(selectMode), numberOfColumn(numberOfColumn), isPreview(isPreview), primaryColor(primaryColor), allowedCamera(allowedCamera), allowSwipeToSelect(allowSwipeToSelect), spacing(spacing), isHiddenPreviewButton(isHiddenPreviewButton), isHiddenOriginalButton(isHiddenOriginalButton), isShowPreviewList(isShowPreviewList), allowHapticTouchPreview(allowHapticTouchPreview), isShowAssetNumber(isShowAssetNumber), allowedLimit(allowedLimit), maxPhoto(maxPhoto), maxVideo(maxVideo), maxSelect(maxSelect), maxVideoDuration(maxVideoDuration), minVideoDuration(minVideoDuration), maxFileSize(maxFileSize), videoQuality(videoQuality), imageQuality(imageQuality), presentation(presentation), crop(crop), text(text), language(language) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 28 were provided
  struct NitroConfig {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 28 were provided
3 errors generated.
[4/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/shared/c++/HybridMultipleImagePickerSpec.cpp.o
ninja: build stopped: subcommand failed.

C++ build system [build] failed while executing:
    /Users/mac/Library/Android/sdk/cmake/3.22.1/bin/ninja \
      -C \
      /Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a \
      MultipleImagePicker
  from /Users/mac/project/react-native-multiple-image-picker/android
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:68)
	at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:128)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
	at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)
	at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)
	at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)
	at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
	at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
	at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
	at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
	at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
	at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
	at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
	at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)
	at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
	at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)
	at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)
	at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:67)
	at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:45)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
	at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
	at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:189)
	at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)
	at org.gradle.internal.Either$Right.fold(Either.java:175)
	at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:62)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)
	at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:46)
	at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:35)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:76)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:54)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:54)
	at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
	at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:49)
	at org.gradle.internal.execution.steps.ResolveIncrementalCachingStateStep.executeDelegate(ResolveIncrementalCachingStateStep.java:27)
	at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:71)
	at org.gradle.internal.execution.steps.AbstractResolveCachingStateStep.execute(AbstractResolveCachingStateStep.java:39)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
	at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106)
	at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:55)
	at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:64)
	at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:43)
	at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:125)
	at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:56)
	at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:36)
	at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
	at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
	at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)
	at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)
	at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)
	at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:289)
	at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)
	at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)
	at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)
	at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)
	at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)
	at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:48)
	at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:35)
	at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:61)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:127)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:116)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
	at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
	at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
Caused by: com.android.ide.common.process.ProcessException: ninja: Entering directory `/Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a'
[1/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/src/main/cpp/cpp-adapter.cpp.o
[2/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o
FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o 
/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/MultipleImagePickerOnLoad.cpp:15:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JFunc_void_std__vector_Result_.hpp:16:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
      return Result(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
    explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
  struct Result {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
1 error generated.
[3/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o
FAILED: CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o 
/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=aarch64-none-linux-android23 --sysroot=/Users/mac/Library/Android/sdk/ndk/26.1.10909125/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -DMultipleImagePicker_EXPORTS -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++ -I/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android -I/Users/mac/project/react-native-multiple-image-picker/android/src/main/cpp -I/Users/mac/project/react-native-multiple-image-picker/android/../cpp -isystem /Users/mac/.gradle/caches/8.8/transforms/625d9c6c64e820fe0df408b4616596f5/transformed/jetified-fbjni-0.6.0/prefab/modules/fbjni/include -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/jsi/include -isystem /Users/mac/project/react-native-multiple-image-picker/MultipleImagePickerExample/node_modules/react-native-nitro-modules/android/build/headers/nitromodules -isystem /Users/mac/.gradle/caches/8.8/transforms/abf96a2496bd53b6caf75f0051639b3e/transformed/jetified-react-android-0.75.0-debug/prefab/modules/react_nativemodule_core/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security  -O2 -frtti -fexceptions -Wall -fstack-protector-all -fno-limit-debug-info  -fPIC -std=gnu++20 -MD -MT CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -MF CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o.d -o CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp.o -c /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:15:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JPickerCropConfig.hpp:35:14: error: no matching conversion for functional-style cast from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig'
      return PickerCropConfig(
             ^~~~~~~~~~~~~~~~~
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'const PickerCropConfig' for 1st argument
  struct PickerCropConfig {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:30:10: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'optional<decay_t<unsigned char>>' (aka 'optional<unsigned char>') to 'PickerCropConfig' for 1st argument
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/PickerCropConfig.hpp:35:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 1st argument
    explicit PickerCropConfig(std::optional<bool> circle): circle(circle) {}
             ^
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
In file included from /Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:17:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JResult.hpp:66:14: error: no matching constructor for initialization of 'Result'
      return Result(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:52:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 15th argument
    explicit Result(std::string path, std::string fileName, std::string localIdentifier, double width, double height, std::string mime, double size, std::optional<double> bucketId, std::optional<std::string> realPath, std::optional<std::string> parentFolderName, std::optional<double> creationDate, std::optional<ResultType> type, std::optional<double> duration, std::optional<std::string> thumbnail, std::optional<bool> crop): path(path), fileName(fileName), localIdentifier(localIdentifier), width(width), height(height), mime(mime), size(size), bucketId(bucketId), realPath(realPath), parentFolderName(parentFolderName), creationDate(creationDate), type(type), duration(duration), thumbnail(thumbnail), crop(crop) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 15 were provided
  struct Result {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/Result.hpp:33:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 15 were provided
In file included from /Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/android/c++/JHybridMultipleImagePickerSpec.cpp:32:
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/android/c++/JNitroConfig.hpp:109:14: error: no matching constructor for initialization of 'NitroConfig'
      return NitroConfig(
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:86:14: note: candidate constructor not viable: no known conversion from 'optional<decay_t<unsigned char>>' to 'optional<bool>' for 6th argument
    explicit NitroConfig(MediaType mediaType, std::vector<Result> selectedAssets, SelectBoxStyle selectBoxStyle, SelectMode selectMode, std::optional<double> numberOfColumn, std::optional<bool> isPreview, std::optional<double> primaryColor, std::optional<bool> allowedCamera, std::optional<bool> allowSwipeToSelect, std::optional<double> spacing, std::optional<bool> isHiddenPreviewButton, std::optional<bool> isHiddenOriginalButton, std::optional<bool> isShowPreviewList, std::optional<bool> allowHapticTouchPreview, std::optional<bool> isShowAssetNumber, std::optional<bool> allowedLimit, std::optional<double> maxPhoto, std::optional<double> maxVideo, std::optional<double> maxSelect, std::optional<double> maxVideoDuration, std::optional<double> minVideoDuration, std::optional<double> maxFileSize, std::optional<double> videoQuality, std::optional<double> imageQuality, Presentation presentation, std::optional<PickerCropConfig> crop, std::optional<Text> text, Language language): mediaType(mediaType), selectedAssets(selectedAssets), selectBoxStyle(selectBoxStyle), selectMode(selectMode), numberOfColumn(numberOfColumn), isPreview(isPreview), primaryColor(primaryColor), allowedCamera(allowedCamera), allowSwipeToSelect(allowSwipeToSelect), spacing(spacing), isHiddenPreviewButton(isHiddenPreviewButton), isHiddenOriginalButton(isHiddenOriginalButton), isShowPreviewList(isShowPreviewList), allowHapticTouchPreview(allowHapticTouchPreview), isShowAssetNumber(isShowAssetNumber), allowedLimit(allowedLimit), maxPhoto(maxPhoto), maxVideo(maxVideo), maxSelect(maxSelect), maxVideoDuration(maxVideoDuration), minVideoDuration(minVideoDuration), maxFileSize(maxFileSize), videoQuality(videoQuality), imageQuality(imageQuality), presentation(presentation), crop(crop), text(text), language(language) {}
             ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 28 were provided
  struct NitroConfig {
         ^
/Users/mac/project/react-native-multiple-image-picker/android/../nitrogen/generated/shared/c++/NitroConfig.hpp:54:10: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 28 were provided
3 errors generated.
[4/5] Building CXX object CMakeFiles/MultipleImagePicker.dir/Users/mac/project/react-native-multiple-image-picker/nitrogen/generated/shared/c++/HybridMultipleImagePickerSpec.cpp.o
ninja: build stopped: subcommand failed.

C++ build system [build] failed while executing:
    /Users/mac/Library/Android/sdk/cmake/3.22.1/bin/ninja \
      -C \
      /Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a \
      MultipleImagePicker
  from /Users/mac/project/react-native-multiple-image-picker/android
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:288)
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:108)
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:106)
	at com.android.build.gradle.internal.cxx.timing.TimingEnvironmentKt.time(TimingEnvironment.kt:32)
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess(ExecuteProcess.kt:106)
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.executeProcess$default(ExecuteProcess.kt:85)
	at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.executeProcessBatch(CxxRegularBuilder.kt:332)
	at com.android.build.gradle.internal.cxx.build.CxxRegularBuilder.build(CxxRegularBuilder.kt:129)
	at com.android.build.gradle.tasks.ExternalNativeBuildTask$doTaskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:70)
	at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
	at com.android.build.gradle.tasks.ExternalNativeBuildTask.doTaskAction(ExternalNativeBuildTask.kt:145)
	at com.android.build.gradle.internal.tasks.UnsafeOutputsTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:65)
	at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
	at com.android.build.gradle.internal.tasks.UnsafeOutputsTask.taskAction(UnsafeOutputsTask.kt:63)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
	... 116 more
Caused by: com.android.ide.common.process.ProcessException: Error while executing process /Users/mac/Library/Android/sdk/cmake/3.22.1/bin/ninja with arguments {-C /Users/mac/project/react-native-multiple-image-picker/android/.cxx/Debug/6m5m3g4g/arm64-v8a MultipleImagePicker}
	at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:73)
	at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:48)
	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:277)
	... 131 more
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Users/mac/Library/Android/sdk/cmake/3.22.1/bin/ninja'' finished with non-zero exit value 1
	at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:442)
	at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46)
	... 132 more

JResult.hpp
https://github.com/baronha/react-native-multiple-image-picker/blob/nitro/nitrogen/generated/android/c%2B%2B/JResult.hpp

JNitroConfig.hpp
https://github.com/baronha/react-native-multiple-image-picker/blob/nitro/nitrogen/generated/android/c%2B%2B/JNitroConfig.hpp

@mrousavy
Copy link
Owner

mrousavy commented Nov 5, 2024

Okay got it. I fixed it here now: #283

@mrousavy
Copy link
Owner

mrousavy commented Nov 5, 2024

Thanks for testing and thanks for posting logs. It would've helped more if you tried to add a SIMPLE reproduction in the TestObject.nitro.ts file here in this repo (in packages/react-native-nitro-image/specs) so I can directly work on that.

But I figured it out anyways now so just for next time keep that in mind

@mrousavy
Copy link
Owner

mrousavy commented Nov 5, 2024

released in Nitro 0.14.1 :)

@baronha
Copy link
Author

baronha commented Nov 8, 2024

Bravo. This is amazing, Marc 🎉🎉🎉 !!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
nitro-core Issue is related to the Nitro Modules core runtime/C++ codebase
Projects
None yet
2 participants