Android: Replacement for JNIEnv::FindClass that works from any thread

This CL adds a replacement for JNIEnv::FindClass that works from any
thread, i.e. from native C++ threads as well. This function will be used
from the generated JNI code. Long term, we should stop using
classreferenceholder that relies on a hardcoded list of WebRTC classes.

Bug: webrtc:8278
Change-Id: I4f40c744325ac02b73bd8fa479ab50b684429dc2
Reviewed-on: https://webrtc-review.googlesource.com/20223
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20583}
This commit is contained in:
Magnus Jedvert
2017-11-07 12:33:43 +01:00
committed by Commit Bot
parent fd0de7a4bb
commit 3111e5fb48
8 changed files with 168 additions and 15 deletions

View File

@ -0,0 +1,23 @@
/*
* Copyright 2017 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
package org.webrtc;
/**
* This class provides a ClassLoader that is capable of loading WebRTC Java classes regardless of
* what thread it's called from. Such a ClassLoader is needed for the few cases where the JNI
* mechanism is unable to automatically determine the appropriate ClassLoader instance.
*/
class ClassLoader {
@CalledByNative
static Object getClassLoader() {
return ClassLoader.class.getClassLoader();
}
}