Illegal class name given to CheckJNI::FindClass(

Hi,
I am on latest Android Studio, updated today, along with latest Juce from Github and latest Android SDK, build tools etc, all updated today. I get this error on a Redmi 5 device with API level 27, 8.1 Oreo:

A/zygote64: java_vm_ext.cc:534] JNI DETECTED ERROR IN APPLICATION: illegal class name '?????????????'
java_vm_ext.cc:534]     (should be of the form 'package/Class', [Lpackage/Class;' or '[[B')
java_vm_ext.cc:534]     in call to FindClass
java_vm_ext.cc:534]     from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.String)
java_vm_ext.cc:534] "main" prio=5 tid=1 Runnable
java_vm_ext.cc:534]   | group="main" sCount=0 dsCount=0 flags=0 obj=0x739b6730 self=0x786560dc00
java_vm_ext.cc:534]   | sysTid=15571 nice=0 cgrp=default sched=1073741825/1 handle=0x78ea33d9a8
java_vm_ext.cc:534]   | state=R schedstat=( 492163707 2234687 70 ) utm=44 stm=5 core=5 HZ=100
java_vm_ext.cc:534]   | stack=0x7fe173f000-0x7fe1741000 stackSize=8MB
java_vm_ext.cc:534]   | held mutexes= "mutator lock"(shared held)
java_vm_ext.cc:534]   native: #00 pc 00000000003cc138  /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+208)
java_vm_ext.cc:534]   native: #01 pc 00000000004a0450  /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+348)
java_vm_ext.cc:534]   native: #02 pc 00000000002fe5e0  /system/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1048)
java_vm_ext.cc:534]   native: #03 pc 00000000002fe9d0  /system/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+116)
java_vm_ext.cc:534]   native: #04 pc 000000000010f83c  /system/lib64/libart.so (art::ScopedCheck::AbortF(char const*, ...)+148)
java_vm_ext.cc:534]   native: #05 pc 00000000000f5900  /system/lib64/libart.so (art::CheckJNI::FindClass(_JNIEnv*, char const*)+744)
java_vm_ext.cc:534]   native: #06 pc 00000000008af49c  /data/app/com.yourcompany.newproject1-F9TLOSbjfMHAXYor1B8dnw==/lib/arm64/libjuce_jni.so (_JNIEnv::FindClass(char const*)+52)
java_vm_ext.cc:534]   native: #07 pc 00000000008aea98  /data/app/com.yourcompany.newproject1-F9TLOSbjfMHAXYor1B8dnw==/lib/arm64/libjuce_jni.so (juce::JNIClassBase::initialise(_JNIEnv*)+2604)
java_vm_ext.cc:534]   native: #08 pc 00000000008af5b4  /data/app/com.yourcompany.newproject1-F9TLOSbjfMHAXYor1B8dnw==/lib/arm64/libjuce_jni.so (juce::JNIClassBase::initialiseAllClasses(_JNIEnv*)+88)
java_vm_ext.cc:534]   native: #09 pc 00000000008b715c  /data/app/com.yourcompany.newproject1-F9TLOSbjfMHAXYor1B8dnw==/lib/arm64/libjuce_jni.so (JNI_OnLoad+308)
java_vm_ext.cc:534]   native: #10 pc 0000000000301184  /system/lib64/libart.so (art::JavaVMExt::LoadNativeLibrary(_JNIEnv*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, _jobject*, _jstring*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*)+2652)
java_vm_ext.cc:534]   native: #11 pc 0000000000004164  /system/lib64/libopenjdkjvm.so (JVM_NativeLoad+268)
java_vm_ext.cc:534]   native: #12 pc 00000000000a81a4  /system/framework/arm64/boot-core-oj.oat (Java_java_lang_Runtime_nativeLoad__Ljava_lang_String_2Ljava_lang_ClassLoader_2Ljava_lang_String_2+228)
java_vm_ext.cc:534]   at java.lang.Runtime.nativeLoad(Native method)
java_vm_ext.cc:534]   at java.lang.Runtime.doLoad(Runtime.java:1099)
java_vm_ext.cc:534]   - locked <0x0d4ae474> (a java.lang.Runtime)
java_vm_ext.cc:534]   at java.lang.Runtime.loadLibrary0(Runtime.java:1014)
java_vm_ext.cc:534]   - locked <0x0d4ae474> (a java.lang.Runtime)
java_vm_ext.cc:534]   at java.lang.System.loadLibrary(System.java:1657)
java_vm_ext.cc:534]   at com.roli.juce.Java.<clinit>(Java.java:9)
java_vm_ext.cc:534]   at com.roli.juce.Java.initialiseJUCE(Native method)
java_vm_ext.cc:534]   at com.roli.juce.JuceApp.onCreate(JuceApp.java:13)
java_vm_ext.cc:534]   at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1120)
java_vm_ext.cc:534]   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5826)
java_vm_ext.cc:534]   at android.app.ActivityThread.-wrap1(ActivityThread.java:-1)
java_vm_ext.cc:534]   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1685)
java_vm_ext.cc:534]   at android.os.Handler.dispatchMessage(Handler.java:106)
java_vm_ext.cc:534]   at android.os.Looper.loop(Looper.java:176)
java_vm_ext.cc:534]   at android.app.ActivityThread.main(ActivityThread.java:6651)
java_vm_ext.cc:534]   at java.lang.reflect.Method.invoke(Native method)
java_vm_ext.cc:534]   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
java_vm_ext.cc:534]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
java_vm_ext.cc:534] 
A/zygote64: runtime.cc:598] Runtime aborting...

It seems the function JNIClassBase::initialise in JUCE\modules\juce_core\native\juce_android_JNIHelpers.cpp is asking for an illegal class to be loaded. Stack trace in Android Studio:

abort 0x00000078e7be7e14
art::Runtime::Abort(char const*) 0x0000007865097ea4
android::base::LogMessage::~LogMessage() 0x000000786519234c
art::JavaVMExt::JniAbort(char const*, char const*) 0x0000007864f20870
art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list) 0x0000007864f209d4
art::ScopedCheck::AbortF(char const*, ...) 0x0000007864d31840
art::CheckJNI::FindClass(_JNIEnv*, char const*) 0x0000007864d17904
_JNIEnv::FindClass(char const*) jni.h:504
juce::JNIClassBase::initialise(_JNIEnv*) juce_android_JNIHelpers.cpp:238
juce::JNIClassBase::initialiseAllClasses(_JNIEnv*) juce_android_JNIHelpers.cpp:274
::JNI_OnLoad(JavaVM *, void *) juce_android_Threads.cpp:92
art::JavaVMExt::LoadNativeLibrary(_JNIEnv*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, _jobject*, _jstring*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) 0x0000007864f23188

Seems like class at index 2 with the class JuceActivityNewIntentListener

Its the push notifications. Disabled it in Projucer Android Exporter settings. Got it working now yay! I love Juce :smiley:!!

So I got the solution here: 5.4.4 + Android Studio (Windows) does not work?
Has the class for this changed in Android and should there be a better error catching for classes which are not found at: https://github.com/WeAreROLI/JUCE/blob/master/modules/juce_core/native/juce_android_JNIHelpers.cpp#L237

or maybe something needs updating for juce_gui_extra\native\juce_android_PushNotifications.cpp for struct JuceActivityNewIntentListener