AudioSynthesizer Demo failing to build for Android on Linux

#1

I’m trying to run the compile the AudioSynthe demo with gradlew on the command line and I’m getting this error :

Error while executing process /home/phil/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {-H/media/phil/54AE4F563BCE86E8/DATA/new_dev_tree/new-android-studio-projects/AnotherJuceNDKLinuxDemo/AudioSynthesiserDemo/Builds/Android/app -B/media/phil/54AE4F563BCE86E8/DATA/new_dev_tree/new-android-studio-projects/AnotherJuceNDKLinuxDemo/AudioSynthesiserDemo/Builds/Android/app/.externalNativeBuild/cmake/debug_Debug/armeabi-v7a -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-16 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/media/phil/54AE4F563BCE86E8/DATA/new_dev_tree/new-android-studio-projects/AnotherJuceNDKLinuxDemo/AudioSynthesiserDemo/Builds/Android/app/build/intermediates/cmake/debug_/debug/obj/armeabi-v7a -DCMAKE_BUILD_TYPE=Debug -DANDROID_NDK=/home/phil/Android/Sdk/ndk-bundle -DCMAKE_C_FLAGS=-fsigned-char -DCMAKE_CXX_FLAGS=-fsigned-char -std=c++14 -DCMAKE_TOOLCHAIN_FILE=/home/phil/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=/home/phil/Android/Sdk/cmake/3.6.4111459/bin/ninja -GAndroid Gradle - Ninja -DANDROID_TOOLCHAIN=clang -DANDROID_PLATFORM=android-16 -DANDROID_STL=c++_static -DANDROID_CPP_FEATURES=exceptions rtti -DANDROID_ARM_MODE=arm -DANDROID_ARM_NEON=TRUE -DJUCE_BUILD_CONFIGURATION=DEBUG -DCMAKE_CXX_FLAGS_DEBUG=-O0 -DCMAKE_C_FLAGS_DEBUG=-O0}
– Check for working C compiler: /home/phil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
– Check for working C compiler: /home/phil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /home/phil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
– Check for working CXX compiler: /home/phil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– The ASM compiler identification is Clang
– Found assembler: /home/phil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
– Configuring done
CMake Error at CMakeLists.txt:29 (add_library):
Cannot find source file:

  ../../../../../../../../../../media/phil/54AE4F563BCE86E8/DATA/dev_tools/linux-not-installed/juce-5.4.2-linux/JUCE/modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

CMake Error: CMake can not determine linker language for target: juce_jni
– Generating done

Now that juce_AudioPlayHead.h that it says it can’t find, is there, but I wonder if there’s something else wrong with the path based on where it thinks it’s looking from.

Why is it building a path that goes up so many times, just to get to the /media which is the root of the file system? Could this have anything to do with it?

0 Likes

#2

Does it work if you build via Android Studio?

0 Likes

#3

No.

But running on the command line gives me better error messages.

0 Likes

#4

Then I suspect there’s something wrong with the paths to your JUCE modules, but I’m afraid I can’t say much more than that. Building with gradle works fine for me.

0 Likes

#5

Like I say, the file gradle says it can’t find, IS actually there. At that location.

What I suspect might be the case is that gradle can’t handle that path for some other reason. Perhaps it doesn’t cope with such a long path. Or with so many “…/” etc.

However, that relative path with all the …/ isn’t actually in my Projucer. I set the paths as you would normally, just navigating in Projucer. And in Projucer the modules path looks like this :

/media/phil/54AE4F563BCE86E8/DATA/dev_tools/linux-not-installed/juce-5.4.2-linux/JUCE/modules/

NOT

  ../../../../../../../../../../media/phil/54AE4F563BCE86E8/DATA/dev_tools/linux-not-installed/juce-5.4.2-linux/JUCE/modules/

When you say it’s working for you, is your gradle using just the absolute path or is it constructing a longer relative path?

0 Likes

#6

Well the first thing to check is if it works if you have a short relative path to your modules. That would indicate a problem using absolute paths.

0 Likes