1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Android: Fixed a linker error when building in release mode

This commit is contained in:
hogliux 2017-06-26 18:23:16 +01:00
parent ca9d76cb68
commit ccb4ce8829
3 changed files with 17 additions and 12 deletions

View file

@ -261,11 +261,6 @@ struct BufferHelpers<float>
}
};
//==============================================================================
// need this from juce_core without asserting
struct JniEnvThreadHolder { static JNIEnv* getEnv(); };
extern JavaVM* androidJNIJavaVM;
//==============================================================================
class OpenSLAudioIODevice : public AudioIODevice
{
@ -325,13 +320,7 @@ public:
void finished (SLAndroidSimpleBufferQueueItf)
{
if (JniEnvThreadHolder::getEnv() == nullptr)
{
JNIEnv* env;
androidJNIJavaVM->AttachCurrentThread (&env, nullptr);
setEnv (env);
}
attachAndroidJNI();
--numBlocksOut;
owner.doSomeWorkOnAudioThread();

View file

@ -33,6 +33,9 @@ extern JNIEnv* getEnv() noexcept;
// on a java thread which you did not create yourself.
extern void setEnv (JNIEnv* env) noexcept;
/* @internal */
extern JNIEnv* attachAndroidJNI() noexcept;
//==============================================================================
class GlobalRef
{

View file

@ -158,6 +158,19 @@ private:
JniEnvThreadHolder* JniEnvThreadHolder::instance = nullptr;
//==============================================================================
JNIEnv* attachAndroidJNI() noexcept
{
auto* env = JniEnvThreadHolder::getEnv();
if (env == nullptr)
{
androidJNIJavaVM->AttachCurrentThread (&env, nullptr);
setEnv (env);
}
return env;
}
JNIEnv* getEnv() noexcept
{
auto* env = JniEnvThreadHolder::getEnv();