diff --git a/modules/juce_gui_basics/filebrowser/juce_ContentSharer.h b/modules/juce_gui_basics/filebrowser/juce_ContentSharer.h index ce33fca056..fac378ee86 100644 --- a/modules/juce_gui_basics/filebrowser/juce_ContentSharer.h +++ b/modules/juce_gui_basics/filebrowser/juce_ContentSharer.h @@ -76,7 +76,7 @@ public: g.fillEllipse (20, 20, 300, 200); Array images; images.add (myImage); - ContentSharer::getInstance()->shareImages (images); + ContentSharer::getInstance()->shareImages (images, myCallback); @endcode Upon completion you will receive a callback with a sharing result. Note: diff --git a/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp b/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp index c0223c5255..8f016287bf 100644 --- a/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp +++ b/modules/juce_gui_basics/native/juce_android_ContentSharer.cpp @@ -613,7 +613,7 @@ private: void filesPrepared (jobject fileUris, const StringArray& mimeTypes) { - auto env = getEnv(); + auto* env = getEnv(); auto intent = LocalRef (env->NewObject (AndroidIntent, AndroidIntent.constructor)); env->CallObjectMethod (intent, AndroidIntent.setAction, @@ -698,6 +698,9 @@ private: static StringArray javaStringArrayToJuceStringArray (const LocalRef& javaArray) { + if (javaArray.get() == 0) + return {}; + auto* env = getEnv(); const int size = env->GetArrayLength (javaArray.get()); @@ -744,6 +747,17 @@ private: ParcelFileDescriptor.open, javaFile.get(), modeReadOnly)); + auto exception = LocalRef (env->ExceptionOccurred()); + + if (exception != 0) + { + // Failed to create file descriptor. Have you provided a valid file path/resource name? + jassertfalse; + + env->ExceptionClear(); + return nullptr; + } + assetFileDescriptors.add (GlobalRef (LocalRef (env->NewObject (AssetFileDescriptor, AssetFileDescriptor.constructor, parcelFileDescriptor.get(),