Juce Android FileChooser Fails


#1

I recently added file browsing to my juce application, and it refuses to compile in jni for Android.
It works builds, runs, and displays the File Chooser on Mac OS X, iOS, and Linux.
Any ideas why it won’t compile for Android?

Here is a code snippet:

const bool useNativeVersion = false; const File initialFileOrDirectory = File::getSpecialLocation (File::userDocumentsDirectory); FileChooser fc ("Choose a file to open...", initialFileOrDirectory, "*", useNativeVersion);
I have tried both ‘true’ and ‘false’ for the value of ‘useNativeVersion’.

Here are the pertinent lines of the compile log:

[code]new-host:Android dmanpearl$ ant release
Buildfile: /Users/me/path/Builds/Android/build.xml
-set-mode-check:
-set-release-mode:

[exec] Compile++ thumb : juce_jni <= juce_opengl.cpp
[exec] SharedLibrary : libjuce_jni.so
[exec] /Users/dmanpearl/development/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/bin/…/lib/gcc/arm-linux-androideabi/4.6/…/…/…/…/arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/juce_jni///__/Source/ui/RenderingTestComponent.o: in function RenderingTestComponent::openFileBrowser():jni/…/…/…/Source/ui/RenderingTestComponent.cpp:824: error: undefined reference to ‘juce::FileChooser::browseForMultipleFilesToOpen(juce::FilePreviewComponent*)’
[exec] collect2: ld returned 1 exit status
[exec] make: *** [obj/local/armeabi/libjuce_jni.so] Error 1
[exec] make: *** Waiting for unfinished jobs…

BUILD FAILED
/Users/me/path/Builds/Android/build.xml:21: exec returned: 2
[/code]


#2

The FileChooser class isn’t implemented for android - it uses modal loops, but modal loops are impossible under android. You’d need to create your own FileChooserDialogBox and show it asynchronously.