Skip to content

Commit 6b58f15

Browse files
committed
api.ExceptionClear( env ) required for retry
1 parent b9b0f26 commit 6b58f15

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

Sources/JNICore.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ open class JNICore {
186186
var clazz: jclass? = api.FindClass( env, name )
187187

188188
if clazz == nil && classLoader != nil {
189+
api.ExceptionClear( env )
189190
var locals = [jobject]()
190191
var args = [jvalue(l: String(cString: name).localJavaObject(&locals))]
191192
clazz = JNIMethod.CallObjectMethod(object: classLoader,
@@ -295,3 +296,11 @@ open class JNICore {
295296
}
296297

297298
}
299+
300+
extension JavaClass {
301+
public convenience init(loading className: String) {
302+
let clazz = JNI.FindClass( className.replacingOccurrences(of: ".", with: "/") )
303+
self.init( javaObject: clazz )
304+
JNI.DeleteLocalRef( clazz )
305+
}
306+
}

0 commit comments

Comments
 (0)