fix: Correctly resolve classes with FindClass(..) (#34533)
Summary: `JNIEnv`'s `FindClass(..)` function takes the classes in the standard `foo/bar/Baz` class specification (unless they're special, like arrays). Specifying them with `Lfoo/bar/Baz;` results in a `ClassNotFoundException` being raised -- which is especially unhelpful when intending to re-throw an exception. The docs for `JNIEnv#FindClass(..)` can be found [here][jnienv]. [jnienv]: https://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/functions.html#:~:text=The%20name%20argument,java/lang/String%22 ## Changelog [Android] [Fixed] - Correctly resolve classes with FindClass(..) X-link: https://github.com/facebook/react-native/pull/34533 Reviewed By: amir-shalem Differential Revision: D39133326 Pulled By: jacdebug fbshipit-source-id: 86283b7d21aed49ed0e9027b2aef85f0108cdf9a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
fbf7a6feb5
commit
97c8bbde12
@@ -15,7 +15,7 @@ namespace yoga {
|
||||
namespace vanillajni {
|
||||
|
||||
YogaJniException::YogaJniException() {
|
||||
jclass cl = getCurrentEnv()->FindClass("Ljava/lang/RuntimeException;");
|
||||
jclass cl = getCurrentEnv()->FindClass("java/lang/RuntimeException");
|
||||
static const jmethodID methodId = facebook::yoga::vanillajni::getMethodId(
|
||||
getCurrentEnv(), cl, "<init>", "()V");
|
||||
auto throwable = getCurrentEnv()->NewObject(cl, methodId);
|
||||
|
Reference in New Issue
Block a user