Skip to content

ACS Lite Fails to Detect Valid NDK/CMake Configuration During Native Builds #109

Description

@TheoLore

Hi, I have been testing ACS Lite on Android and ran into several issues related to native builds that may be worth looking into
I noticed cases where CMake is installed and working correctly, but ACS Lite still behaves as if CMake is unavailable or not detected. In my setup, CMake 4.3.0 was installed and executable, yet the environment was not always picking it up automatically because its directory was not added to PATH.

I also encountered build failures where the generated CMake configuration referenced a completely different NDK version than the one actually installed on the device. For example, the build system attempted to use NDK 27.3.13750724 even though only NDK 30.0.14904198 was installed. This resulted in CMake trying to invoke a clang binary from a non existent NDK path and failing with clang: not found

It would be helpful if ACS Lite validated the configured NDK version before starting a native build and automatically warned the user when the requested NDK is missing. Right now the error appears much later during CMake configuration and can be confusing

Another issue is that native build diagnostics are sometimes difficult to interpret. The output suggests compiler failures, while the actual root cause is often an invalid NDK path, a missing toolchain, or environment detection problems
It may also be worth improving detection for CMake, Ninja, SDK, and NDK components and providing clearer messages when one of them is missing or mismatched. Automatic fallback to an installed NDK version, or at least a prompt suggesting available versions, would make native C/C++ development much smoother
I also saw repeated CMake deprecation warnings and native configuration failures that make troubleshooting harder for users. Better validation before invoking CMake could prevent many of these issues
Overall, the biggest problems I observed were incorrect NDK version resolution, failed clang discovery due to stale paths, native C/C++ build configuration errors, and inconsistent detection of installed build tools. Improving these areas would greatly improve the experience for projects that use CMake and JNI

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions