Skip to content

Build fails on Android (possible on iOS too) #1

@ripetrescu

Description

@ripetrescu

Trying to build the flutter project for Android using the nativeapi: ^0.1.0 fails with:

Execution failed for task ':cnativeapi:buildCMakeDebug[arm64-v8a]'.
> com.android.ide.common.process.ProcessException: ninja: Entering directory `/home/<user>/.pub-cache/hosted/pub.dev/cnativeapi-0.1.0/android/.cxx/Debug/2q50bg55/arm64-v8a'
  [1/1] Linking CXX shared library /home/<user>/<project_path>/build/cnativeapi/intermediates/cxx/Debug/2q50bg55/obj/arm64-v8a/libcnativeapi.so
  FAILED: /home/<user>/<project_path>/build/cnativeapi/intermediates/cxx/Debug/2q50bg55/obj/arm64-v8a/libcnativeapi.so 
  : && /home/<user>/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android24 --sysroot=/home/<user>/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security   -fno-limit-debug-info  -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libcnativeapi.so -o /home/<user>/<project_path>/build/cnativeapi/intermediates/cxx/Debug/2q50bg55/obj/arm64-v8a/libcnativeapi.so CMakeFiles/cnativeapi.dir/libnativeapi/src/accessibility_manager.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/application.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/display_manager.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/foundation/id_allocator.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/menu.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/positioning_strategy.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/preferences.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/secure_storage.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/tray_manager.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/window_manager.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/accessibility_manager_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/application_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/display_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/display_manager_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/image_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/keyboard_monitor_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/menu_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/menu_item_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/preferences_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/secure_storage_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/tray_icon_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/tray_manager_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/window_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/platform/android/window_manager_android.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/accessibility_manager_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/application_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/display_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/display_manager_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/image_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/keyboard_monitor_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/menu_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/positioning_strategy_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/preferences_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/run_example_app_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/secure_storage_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/string_utils_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/tray_icon_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/tray_manager_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/window_c.cpp.o CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/window_manager_c.cpp.o  -llog  -landroid  -latomic -lm && :
  ld.lld: error: undefined symbol: nativeapi::TrayIcon::SetContextMenuTrigger(nativeapi::ContextMenuTrigger)
  >>> referenced by tray_icon_c.cpp:261 (/home/<user>/.pub-cache/hosted/pub.dev/cnativeapi-0.1.0/src/libnativeapi/src/capi/tray_icon_c.cpp:261)
  >>>               CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/tray_icon_c.cpp.o:(native_tray_icon_set_context_menu_trigger)

  ld.lld: error: undefined symbol: nativeapi::TrayIcon::GetContextMenuTrigger()
  >>> referenced by tray_icon_c.cpp:274 (/home/<user>/.pub-cache/hosted/pub.dev/cnativeapi-0.1.0/src/libnativeapi/src/capi/tray_icon_c.cpp:274)
  >>>               CMakeFiles/cnativeapi.dir/libnativeapi/src/capi/tray_icon_c.cpp.o:(native_tray_icon_get_context_menu_trigger)
  clang++: error: linker command failed with exit code 1 (use -v to see invocation)
  ninja: build stopped: subcommand failed.

  C++ build system [build] failed while executing:
      /home/<user>/Android/Sdk/cmake/3.22.1/bin/ninja \
        -C \
        /home/<user>/.pub-cache/hosted/pub.dev/cnativeapi-0.1.0/android/.cxx/Debug/2q50bg55/arm64-v8a \
        cnativeapi
    from /home/<user>/.pub-cache/hosted/pub.dev/cnativeapi-0.1.0/android

It should simply ignore the missing implementation for mobile, this could be also be happening on iOS build.

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions