Add DEFINE_JNI() to WebRTC open source

We have added some new features to JNI Zero that requires all C++
implementation files to have a macro call DEFINE_JNI(JavaClassName)
at the end of the file, where JavaClassName is the name of the Java
class whose generated JNI Zero header file is included in the C++ file.
This CL adds this macro call to the end of all C++ files.

Bug: chromium:481689330
Change-Id: I50abcdc0f1fe8cba20377b07577e8821d8cf9221
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/489720
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Martin Kong <martinkong@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#48212}
diff --git a/rtc_tools/network_tester/jni.cc b/rtc_tools/network_tester/jni.cc
index 063616f..caaa284 100644
--- a/rtc_tools/network_tester/jni.cc
+++ b/rtc_tools/network_tester/jni.cc
@@ -57,3 +57,5 @@
 }
 
 }  // namespace webrtc
+
+DEFINE_JNI(NetworkTester)
diff --git a/sdk/android/instrumentationtests/loggable_test.cc b/sdk/android/instrumentationtests/loggable_test.cc
index d5e1af1..8b2ab21 100644
--- a/sdk/android/instrumentationtests/loggable_test.cc
+++ b/sdk/android/instrumentationtests/loggable_test.cc
@@ -30,3 +30,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(LoggableTest)
diff --git a/sdk/android/instrumentationtests/video_frame_buffer_test.cc b/sdk/android/instrumentationtests/video_frame_buffer_test.cc
index 587a37b..cbd549c 100644
--- a/sdk/android/instrumentationtests/video_frame_buffer_test.cc
+++ b/sdk/android/instrumentationtests/video_frame_buffer_test.cc
@@ -47,3 +47,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoFrameBufferTest)
diff --git a/sdk/android/native_api/jni/application_context_provider.cc b/sdk/android/native_api/jni/application_context_provider.cc
index 3c8e48e..18ed623 100644
--- a/sdk/android/native_api/jni/application_context_provider.cc
+++ b/sdk/android/native_api/jni/application_context_provider.cc
@@ -22,3 +22,5 @@
 }
 
 }  // namespace webrtc
+
+DEFINE_JNI(ApplicationContextProvider)
diff --git a/sdk/android/native_api/jni/class_loader.cc b/sdk/android/native_api/jni/class_loader.cc
index 1664667..221f43a 100644
--- a/sdk/android/native_api/jni/class_loader.cc
+++ b/sdk/android/native_api/jni/class_loader.cc
@@ -104,3 +104,5 @@
 }
 
 }  // namespace webrtc
+
+DEFINE_JNI(WebRtcClassLoader)
diff --git a/sdk/android/native_api/jni/java_types.cc b/sdk/android/native_api/jni/java_types.cc
index 9581b2d..37314a6 100644
--- a/sdk/android/native_api/jni/java_types.cc
+++ b/sdk/android/native_api/jni/java_types.cc
@@ -400,3 +400,5 @@
 }
 
 }  // namespace webrtc
+
+DEFINE_JNI(JniHelper)
diff --git a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
index bb2c31d..9c57cab 100644
--- a/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
+++ b/sdk/android/native_unittests/audio_device/audio_device_unittest.cc
@@ -1218,3 +1218,5 @@
 }  // namespace jni
 
 }  // namespace webrtc
+
+DEFINE_JNI(BuildInfo)
diff --git a/sdk/android/native_unittests/codecs/wrapper_unittest.cc b/sdk/android/native_unittests/codecs/wrapper_unittest.cc
index d4a6539..475f33d 100644
--- a/sdk/android/native_unittests/codecs/wrapper_unittest.cc
+++ b/sdk/android/native_unittests/codecs/wrapper_unittest.cc
@@ -113,3 +113,5 @@
 }  // namespace
 }  // namespace test
 }  // namespace webrtc
+
+DEFINE_JNI(CodecsWrapperTestHelper)
diff --git a/sdk/android/native_unittests/java_types_unittest.cc b/sdk/android/native_unittests/java_types_unittest.cc
index b0907e2..73eff9d 100644
--- a/sdk/android/native_unittests/java_types_unittest.cc
+++ b/sdk/android/native_unittests/java_types_unittest.cc
@@ -83,3 +83,5 @@
 }  // namespace
 }  // namespace test
 }  // namespace webrtc
+
+DEFINE_JNI(JavaTypesTestHelper)
diff --git a/sdk/android/native_unittests/peerconnection/peer_connection_factory_unittest.cc b/sdk/android/native_unittests/peerconnection/peer_connection_factory_unittest.cc
index dae6480..3dc9ca4 100644
--- a/sdk/android/native_unittests/peerconnection/peer_connection_factory_unittest.cc
+++ b/sdk/android/native_unittests/peerconnection/peer_connection_factory_unittest.cc
@@ -183,3 +183,5 @@
 }  // namespace
 }  // namespace test
 }  // namespace webrtc
+
+DEFINE_JNI(PeerConnectionFactoryInitializationHelper)
diff --git a/sdk/android/native_unittests/video/video_source_unittest.cc b/sdk/android/native_unittests/video/video_source_unittest.cc
index 9a5144b..baec9a3 100644
--- a/sdk/android/native_unittests/video/video_source_unittest.cc
+++ b/sdk/android/native_unittests/video/video_source_unittest.cc
@@ -192,3 +192,5 @@
 
 }  // namespace test
 }  // namespace webrtc
+
+DEFINE_JNI(JavaVideoSourceTestHelper)
diff --git a/sdk/android/src/jni/android_histogram.cc b/sdk/android/src/jni/android_histogram.cc
index 043313a..80fae7d 100644
--- a/sdk/android/src/jni/android_histogram.cc
+++ b/sdk/android/src/jni/android_histogram.cc
@@ -49,3 +49,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(Histogram)
diff --git a/sdk/android/src/jni/android_metrics.cc b/sdk/android/src/jni/android_metrics.cc
index 581b6cc..0807e21 100644
--- a/sdk/android/src/jni/android_metrics.cc
+++ b/sdk/android/src/jni/android_metrics.cc
@@ -53,3 +53,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(Metrics)
diff --git a/sdk/android/src/jni/android_network_monitor.cc b/sdk/android/src/jni/android_network_monitor.cc
index 932f34b..1197bf3 100644
--- a/sdk/android/src/jni/android_network_monitor.cc
+++ b/sdk/android/src/jni/android_network_monitor.cc
@@ -725,3 +725,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(NetworkChangeDetector)
+DEFINE_JNI(NetworkMonitor)
diff --git a/sdk/android/src/jni/android_video_track_source.cc b/sdk/android/src/jni/android_video_track_source.cc
index 9e4f188..69b566e 100644
--- a/sdk/android/src/jni/android_video_track_source.cc
+++ b/sdk/android/src/jni/android_video_track_source.cc
@@ -215,3 +215,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(NativeAndroidVideoTrackSource)
diff --git a/sdk/android/src/jni/audio_device/audio_device_module.cc b/sdk/android/src/jni/audio_device/audio_device_module.cc
index 00255c0..c10d99d 100644
--- a/sdk/android/src/jni/audio_device/audio_device_module.cc
+++ b/sdk/android/src/jni/audio_device/audio_device_module.cc
@@ -677,3 +677,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(WebRtcAudioManager)
diff --git a/sdk/android/src/jni/audio_device/audio_record_jni.cc b/sdk/android/src/jni/audio_device/audio_record_jni.cc
index 82b47b7..82bd274 100644
--- a/sdk/android/src/jni/audio_device/audio_record_jni.cc
+++ b/sdk/android/src/jni/audio_device/audio_record_jni.cc
@@ -280,3 +280,5 @@
 }  // namespace jni
 
 }  // namespace webrtc
+
+DEFINE_JNI(WebRtcAudioRecord)
diff --git a/sdk/android/src/jni/audio_device/audio_track_jni.cc b/sdk/android/src/jni/audio_device/audio_track_jni.cc
index ce8f295..1a6ece2 100644
--- a/sdk/android/src/jni/audio_device/audio_track_jni.cc
+++ b/sdk/android/src/jni/audio_device/audio_track_jni.cc
@@ -279,3 +279,5 @@
 }  // namespace jni
 
 }  // namespace webrtc
+
+DEFINE_JNI(WebRtcAudioTrack)
diff --git a/sdk/android/src/jni/audio_device/java_audio_device_module.cc b/sdk/android/src/jni/audio_device/java_audio_device_module.cc
index 472921b..8fbb618 100644
--- a/sdk/android/src/jni/audio_device/java_audio_device_module.cc
+++ b/sdk/android/src/jni/audio_device/java_audio_device_module.cc
@@ -60,3 +60,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(JavaAudioDeviceModule)
diff --git a/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc b/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc
index 6b80e11..bd74417 100644
--- a/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc
+++ b/sdk/android/src/jni/builtin_audio_decoder_factory_factory.cc
@@ -25,3 +25,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(BuiltinAudioDecoderFactoryFactory)
diff --git a/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc b/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc
index 192abf1..d8f669f 100644
--- a/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc
+++ b/sdk/android/src/jni/builtin_audio_encoder_factory_factory.cc
@@ -25,3 +25,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(BuiltinAudioEncoderFactoryFactory)
diff --git a/sdk/android/src/jni/dav1d_codec.cc b/sdk/android/src/jni/dav1d_codec.cc
index 99ad2f5..e5082db 100644
--- a/sdk/android/src/jni/dav1d_codec.cc
+++ b/sdk/android/src/jni/dav1d_codec.cc
@@ -23,3 +23,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(Dav1dDecoder)
diff --git a/sdk/android/src/jni/egl_base_10_impl.cc b/sdk/android/src/jni/egl_base_10_impl.cc
index 1c6aaab..9054bf8 100644
--- a/sdk/android/src/jni/egl_base_10_impl.cc
+++ b/sdk/android/src/jni/egl_base_10_impl.cc
@@ -22,3 +22,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(EglBase10Impl)
diff --git a/sdk/android/src/jni/encoded_image.cc b/sdk/android/src/jni/encoded_image.cc
index 6b18389..1c7cab0 100644
--- a/sdk/android/src/jni/encoded_image.cc
+++ b/sdk/android/src/jni/encoded_image.cc
@@ -123,3 +123,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(EncodedImage)
diff --git a/sdk/android/src/jni/environment.cc b/sdk/android/src/jni/environment.cc
index bf751e4..94ff4e6 100644
--- a/sdk/android/src/jni/environment.cc
+++ b/sdk/android/src/jni/environment.cc
@@ -43,3 +43,5 @@
 }
 
 }  // namespace webrtc::jni
+
+DEFINE_JNI(Environment)
diff --git a/sdk/android/src/jni/h264_utils.cc b/sdk/android/src/jni/h264_utils.cc
index 688cf7b..7e92f5e 100644
--- a/sdk/android/src/jni/h264_utils.cc
+++ b/sdk/android/src/jni/h264_utils.cc
@@ -30,3 +30,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(H264Utils)
diff --git a/sdk/android/src/jni/java_i420_buffer.cc b/sdk/android/src/jni/java_i420_buffer.cc
index e1c232a..1d4b4b4 100644
--- a/sdk/android/src/jni/java_i420_buffer.cc
+++ b/sdk/android/src/jni/java_i420_buffer.cc
@@ -67,3 +67,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(JavaI420Buffer)
diff --git a/sdk/android/src/jni/jni_common.cc b/sdk/android/src/jni/jni_common.cc
index d2ea7cb..f8738f5 100644
--- a/sdk/android/src/jni/jni_common.cc
+++ b/sdk/android/src/jni/jni_common.cc
@@ -44,3 +44,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(JniCommon)
diff --git a/sdk/android/src/jni/libaom_av1_encoder.cc b/sdk/android/src/jni/libaom_av1_encoder.cc
index fa4f21c..5f132f0 100644
--- a/sdk/android/src/jni/libaom_av1_encoder.cc
+++ b/sdk/android/src/jni/libaom_av1_encoder.cc
@@ -28,3 +28,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(LibaomAv1Encoder)
diff --git a/sdk/android/src/jni/logging/log_sink.cc b/sdk/android/src/jni/logging/log_sink.cc
index a0e5b97..412cfa9 100644
--- a/sdk/android/src/jni/logging/log_sink.cc
+++ b/sdk/android/src/jni/logging/log_sink.cc
@@ -49,3 +49,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(JNILogging)
diff --git a/sdk/android/src/jni/native_capturer_observer.cc b/sdk/android/src/jni/native_capturer_observer.cc
index 3d63936..3b3b8c4 100644
--- a/sdk/android/src/jni/native_capturer_observer.cc
+++ b/sdk/android/src/jni/native_capturer_observer.cc
@@ -30,3 +30,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(NativeCapturerObserver)
diff --git a/sdk/android/src/jni/nv12_buffer.cc b/sdk/android/src/jni/nv12_buffer.cc
index f460e9c..9b3adb7 100644
--- a/sdk/android/src/jni/nv12_buffer.cc
+++ b/sdk/android/src/jni/nv12_buffer.cc
@@ -80,3 +80,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(NV12Buffer)
diff --git a/sdk/android/src/jni/nv21_buffer.cc b/sdk/android/src/jni/nv21_buffer.cc
index 658ac83..454699f 100644
--- a/sdk/android/src/jni/nv21_buffer.cc
+++ b/sdk/android/src/jni/nv21_buffer.cc
@@ -70,3 +70,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(NV21Buffer)
diff --git a/sdk/android/src/jni/pc/add_ice_candidate_observer.cc b/sdk/android/src/jni/pc/add_ice_candidate_observer.cc
index 1fd00d1..da57d9b 100644
--- a/sdk/android/src/jni/pc/add_ice_candidate_observer.cc
+++ b/sdk/android/src/jni/pc/add_ice_candidate_observer.cc
@@ -38,3 +38,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(AddIceObserver)
diff --git a/sdk/android/src/jni/pc/audio_track.cc b/sdk/android/src/jni/pc/audio_track.cc
index 1ec0f44..38ffc2e 100644
--- a/sdk/android/src/jni/pc/audio_track.cc
+++ b/sdk/android/src/jni/pc/audio_track.cc
@@ -25,3 +25,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(AudioTrack)
diff --git a/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc b/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc
index 489f396..f6c4940 100644
--- a/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc
+++ b/sdk/android/src/jni/pc/call_session_file_rotating_log_sink.cc
@@ -81,3 +81,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(CallSessionFileRotatingLogSink)
diff --git a/sdk/android/src/jni/pc/crypto_options.cc b/sdk/android/src/jni/pc/crypto_options.cc
index 1371104..4968b63 100644
--- a/sdk/android/src/jni/pc/crypto_options.cc
+++ b/sdk/android/src/jni/pc/crypto_options.cc
@@ -50,3 +50,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(CryptoOptions)
diff --git a/sdk/android/src/jni/pc/data_channel.cc b/sdk/android/src/jni/pc/data_channel.cc
index e3f17ac..314e663 100644
--- a/sdk/android/src/jni/pc/data_channel.cc
+++ b/sdk/android/src/jni/pc/data_channel.cc
@@ -166,3 +166,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(DataChannel)
diff --git a/sdk/android/src/jni/pc/dtmf_sender.cc b/sdk/android/src/jni/pc/dtmf_sender.cc
index aa77861..8a3a475 100644
--- a/sdk/android/src/jni/pc/dtmf_sender.cc
+++ b/sdk/android/src/jni/pc/dtmf_sender.cc
@@ -55,3 +55,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(DtmfSender)
diff --git a/sdk/android/src/jni/pc/ice_candidate.cc b/sdk/android/src/jni/pc/ice_candidate.cc
index aa57497..36e9de6 100644
--- a/sdk/android/src/jni/pc/ice_candidate.cc
+++ b/sdk/android/src/jni/pc/ice_candidate.cc
@@ -260,3 +260,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(IceCandidate)
diff --git a/sdk/android/src/jni/pc/logging.cc b/sdk/android/src/jni/pc/logging.cc
index d9024d6..cf8bb18 100644
--- a/sdk/android/src/jni/pc/logging.cc
+++ b/sdk/android/src/jni/pc/logging.cc
@@ -51,3 +51,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(Logging)
diff --git a/sdk/android/src/jni/pc/media_constraints.cc b/sdk/android/src/jni/pc/media_constraints.cc
index 97a78dd..a0a8813 100644
--- a/sdk/android/src/jni/pc/media_constraints.cc
+++ b/sdk/android/src/jni/pc/media_constraints.cc
@@ -52,3 +52,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(MediaConstraints)
diff --git a/sdk/android/src/jni/pc/media_source.cc b/sdk/android/src/jni/pc/media_source.cc
index 58d650e..1725ec7 100644
--- a/sdk/android/src/jni/pc/media_source.cc
+++ b/sdk/android/src/jni/pc/media_source.cc
@@ -26,3 +26,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(MediaSource)
diff --git a/sdk/android/src/jni/pc/media_stream.cc b/sdk/android/src/jni/pc/media_stream.cc
index 00f26a6..3f5a2a8 100644
--- a/sdk/android/src/jni/pc/media_stream.cc
+++ b/sdk/android/src/jni/pc/media_stream.cc
@@ -157,3 +157,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(MediaStream)
diff --git a/sdk/android/src/jni/pc/media_stream_track.cc b/sdk/android/src/jni/pc/media_stream_track.cc
index 28c4382..be42254 100644
--- a/sdk/android/src/jni/pc/media_stream_track.cc
+++ b/sdk/android/src/jni/pc/media_stream_track.cc
@@ -62,3 +62,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(MediaStreamTrack)
diff --git a/sdk/android/src/jni/pc/peer_connection.cc b/sdk/android/src/jni/pc/peer_connection.cc
index b81e7a2..a12be8a 100644
--- a/sdk/android/src/jni/pc/peer_connection.cc
+++ b/sdk/android/src/jni/pc/peer_connection.cc
@@ -994,3 +994,7 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(CandidatePairChangeEvent)
+DEFINE_JNI(IceCandidateErrorEvent)
+DEFINE_JNI(PeerConnection)
diff --git a/sdk/android/src/jni/pc/peer_connection_factory.cc b/sdk/android/src/jni/pc/peer_connection_factory.cc
index fc244f8..bf0191e 100644
--- a/sdk/android/src/jni/pc/peer_connection_factory.cc
+++ b/sdk/android/src/jni/pc/peer_connection_factory.cc
@@ -586,3 +586,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(PeerConnectionFactory)
diff --git a/sdk/android/src/jni/pc/rtc_certificate.cc b/sdk/android/src/jni/pc/rtc_certificate.cc
index 9d0361a..a70b300 100644
--- a/sdk/android/src/jni/pc/rtc_certificate.cc
+++ b/sdk/android/src/jni/pc/rtc_certificate.cc
@@ -90,3 +90,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtcCertificatePem)
diff --git a/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc b/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
index 094b889..6aff5dc 100644
--- a/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
+++ b/sdk/android/src/jni/pc/rtc_stats_collector_callback_wrapper.cc
@@ -144,3 +144,7 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RTCStatsCollectorCallback)
+DEFINE_JNI(RTCStatsReport)
+DEFINE_JNI(RTCStats)
diff --git a/sdk/android/src/jni/pc/rtp_capabilities.cc b/sdk/android/src/jni/pc/rtp_capabilities.cc
index d2b1246..9b21a1f 100644
--- a/sdk/android/src/jni/pc/rtp_capabilities.cc
+++ b/sdk/android/src/jni/pc/rtp_capabilities.cc
@@ -128,3 +128,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtpCapabilities)
diff --git a/sdk/android/src/jni/pc/rtp_parameters.cc b/sdk/android/src/jni/pc/rtp_parameters.cc
index 1dbf2c0..a167b9d 100644
--- a/sdk/android/src/jni/pc/rtp_parameters.cc
+++ b/sdk/android/src/jni/pc/rtp_parameters.cc
@@ -221,3 +221,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtpParameters)
diff --git a/sdk/android/src/jni/pc/rtp_receiver.cc b/sdk/android/src/jni/pc/rtp_receiver.cc
index 772bbb7..6bb4393 100644
--- a/sdk/android/src/jni/pc/rtp_receiver.cc
+++ b/sdk/android/src/jni/pc/rtp_receiver.cc
@@ -142,3 +142,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtpReceiver)
diff --git a/sdk/android/src/jni/pc/rtp_sender.cc b/sdk/android/src/jni/pc/rtp_sender.cc
index c294d9e..d128809 100644
--- a/sdk/android/src/jni/pc/rtp_sender.cc
+++ b/sdk/android/src/jni/pc/rtp_sender.cc
@@ -131,3 +131,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtpSender)
diff --git a/sdk/android/src/jni/pc/rtp_transceiver.cc b/sdk/android/src/jni/pc/rtp_transceiver.cc
index b93d77ce..695e61f 100644
--- a/sdk/android/src/jni/pc/rtp_transceiver.cc
+++ b/sdk/android/src/jni/pc/rtp_transceiver.cc
@@ -207,3 +207,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RtpTransceiver)
+DEFINE_JNI(RtcError)
diff --git a/sdk/android/src/jni/pc/sdp_observer.cc b/sdk/android/src/jni/pc/sdp_observer.cc
index 6c81367..66ce35960 100644
--- a/sdk/android/src/jni/pc/sdp_observer.cc
+++ b/sdk/android/src/jni/pc/sdp_observer.cc
@@ -88,3 +88,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(SdpObserver)
diff --git a/sdk/android/src/jni/pc/session_description.cc b/sdk/android/src/jni/pc/session_description.cc
index 3d00af3..3f27618 100644
--- a/sdk/android/src/jni/pc/session_description.cc
+++ b/sdk/android/src/jni/pc/session_description.cc
@@ -63,3 +63,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(SessionDescription)
diff --git a/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc b/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc
index 48f23c9..74deedc 100644
--- a/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc
+++ b/sdk/android/src/jni/pc/ssl_certificate_verifier_wrapper.cc
@@ -47,3 +47,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(SSLCertificateVerifier)
diff --git a/sdk/android/src/jni/pc/stats_observer.cc b/sdk/android/src/jni/pc/stats_observer.cc
index 0a42bc0..37f7647 100644
--- a/sdk/android/src/jni/pc/stats_observer.cc
+++ b/sdk/android/src/jni/pc/stats_observer.cc
@@ -77,3 +77,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(StatsObserver)
+DEFINE_JNI(StatsReport)
diff --git a/sdk/android/src/jni/pc/turn_customizer.cc b/sdk/android/src/jni/pc/turn_customizer.cc
index 34e9636..bdf631a 100644
--- a/sdk/android/src/jni/pc/turn_customizer.cc
+++ b/sdk/android/src/jni/pc/turn_customizer.cc
@@ -36,3 +36,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(TurnCustomizer)
diff --git a/sdk/android/src/jni/scoped_java_ref_counted.cc b/sdk/android/src/jni/scoped_java_ref_counted.cc
index 75344f3..292bad3 100644
--- a/sdk/android/src/jni/scoped_java_ref_counted.cc
+++ b/sdk/android/src/jni/scoped_java_ref_counted.cc
@@ -45,3 +45,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(RefCounted)
diff --git a/sdk/android/src/jni/software_video_decoder_factory.cc b/sdk/android/src/jni/software_video_decoder_factory.cc
index d0d743b..86c26f7 100644
--- a/sdk/android/src/jni/software_video_decoder_factory.cc
+++ b/sdk/android/src/jni/software_video_decoder_factory.cc
@@ -60,3 +60,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(SoftwareVideoDecoderFactory)
diff --git a/sdk/android/src/jni/software_video_encoder_factory.cc b/sdk/android/src/jni/software_video_encoder_factory.cc
index 51c40bd..d7959e5 100644
--- a/sdk/android/src/jni/software_video_encoder_factory.cc
+++ b/sdk/android/src/jni/software_video_encoder_factory.cc
@@ -58,3 +58,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(SoftwareVideoEncoderFactory)
diff --git a/sdk/android/src/jni/timestamp_aligner.cc b/sdk/android/src/jni/timestamp_aligner.cc
index 12fbd00..3f24f27 100644
--- a/sdk/android/src/jni/timestamp_aligner.cc
+++ b/sdk/android/src/jni/timestamp_aligner.cc
@@ -61,3 +61,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(TimestampAligner)
diff --git a/sdk/android/src/jni/video_codec_info.cc b/sdk/android/src/jni/video_codec_info.cc
index 8ba7274..eb25b47 100644
--- a/sdk/android/src/jni/video_codec_info.cc
+++ b/sdk/android/src/jni/video_codec_info.cc
@@ -38,3 +38,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoCodecInfo)
diff --git a/sdk/android/src/jni/video_codec_status.cc b/sdk/android/src/jni/video_codec_status.cc
index a543323..9e9eaec 100644
--- a/sdk/android/src/jni/video_codec_status.cc
+++ b/sdk/android/src/jni/video_codec_status.cc
@@ -28,3 +28,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoCodecStatus)
diff --git a/sdk/android/src/jni/video_decoder_factory_wrapper.cc b/sdk/android/src/jni/video_decoder_factory_wrapper.cc
index e5d6a86..0caa616d 100644
--- a/sdk/android/src/jni/video_decoder_factory_wrapper.cc
+++ b/sdk/android/src/jni/video_decoder_factory_wrapper.cc
@@ -57,3 +57,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoDecoderFactory)
diff --git a/sdk/android/src/jni/video_decoder_fallback.cc b/sdk/android/src/jni/video_decoder_fallback.cc
index 30a7f2f..70ba764 100644
--- a/sdk/android/src/jni/video_decoder_fallback.cc
+++ b/sdk/android/src/jni/video_decoder_fallback.cc
@@ -45,3 +45,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoDecoderFallback)
diff --git a/sdk/android/src/jni/video_decoder_wrapper.cc b/sdk/android/src/jni/video_decoder_wrapper.cc
index 0bd53dd..30ed742 100644
--- a/sdk/android/src/jni/video_decoder_wrapper.cc
+++ b/sdk/android/src/jni/video_decoder_wrapper.cc
@@ -296,3 +296,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoDecoderWrapper)
+DEFINE_JNI(VideoDecoder)
diff --git a/sdk/android/src/jni/video_encoder_factory_wrapper.cc b/sdk/android/src/jni/video_encoder_factory_wrapper.cc
index 6a0e62a..778e833 100644
--- a/sdk/android/src/jni/video_encoder_factory_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_factory_wrapper.cc
@@ -139,3 +139,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoEncoderFactory)
diff --git a/sdk/android/src/jni/video_encoder_fallback.cc b/sdk/android/src/jni/video_encoder_fallback.cc
index 8956fd7..45d0f1a 100644
--- a/sdk/android/src/jni/video_encoder_fallback.cc
+++ b/sdk/android/src/jni/video_encoder_fallback.cc
@@ -44,3 +44,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoEncoderFallback)
diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc
index 57618db..d36a769 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_wrapper.cc
@@ -533,3 +533,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoEncoderWrapper)
+DEFINE_JNI(VideoEncoder)
diff --git a/sdk/android/src/jni/video_frame.cc b/sdk/android/src/jni/video_frame.cc
index d16db0e..1dca6f9 100644
--- a/sdk/android/src/jni/video_frame.cc
+++ b/sdk/android/src/jni/video_frame.cc
@@ -328,3 +328,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoFrame)
diff --git a/sdk/android/src/jni/video_sink.cc b/sdk/android/src/jni/video_sink.cc
index 95d4d89..a77e4fa 100644
--- a/sdk/android/src/jni/video_sink.cc
+++ b/sdk/android/src/jni/video_sink.cc
@@ -40,3 +40,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoSink)
diff --git a/sdk/android/src/jni/video_track.cc b/sdk/android/src/jni/video_track.cc
index e81c525..10b58ad 100644
--- a/sdk/android/src/jni/video_track.cc
+++ b/sdk/android/src/jni/video_track.cc
@@ -50,3 +50,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(VideoTrack)
diff --git a/sdk/android/src/jni/vp8_codec.cc b/sdk/android/src/jni/vp8_codec.cc
index 546ab8f..25abb44 100644
--- a/sdk/android/src/jni/vp8_codec.cc
+++ b/sdk/android/src/jni/vp8_codec.cc
@@ -34,3 +34,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(LibvpxVp8Decoder)
+DEFINE_JNI(LibvpxVp8Encoder)
diff --git a/sdk/android/src/jni/vp9_codec.cc b/sdk/android/src/jni/vp9_codec.cc
index f4e7e5b..d7ec94f 100644
--- a/sdk/android/src/jni/vp9_codec.cc
+++ b/sdk/android/src/jni/vp9_codec.cc
@@ -40,3 +40,6 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(LibvpxVp9Decoder)
+DEFINE_JNI(LibvpxVp9Encoder)
diff --git a/sdk/android/src/jni/wrapped_native_i420_buffer.cc b/sdk/android/src/jni/wrapped_native_i420_buffer.cc
index d05a439..e652ebf 100644
--- a/sdk/android/src/jni/wrapped_native_i420_buffer.cc
+++ b/sdk/android/src/jni/wrapped_native_i420_buffer.cc
@@ -45,3 +45,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(WrappedNativeI420Buffer)
diff --git a/sdk/android/src/jni/yuv_helper.cc b/sdk/android/src/jni/yuv_helper.cc
index 87e97c1..4df3c76 100644
--- a/sdk/android/src/jni/yuv_helper.cc
+++ b/sdk/android/src/jni/yuv_helper.cc
@@ -160,3 +160,5 @@
 
 }  // namespace jni
 }  // namespace webrtc
+
+DEFINE_JNI(YuvHelper)
diff --git a/test/android/native_test_launcher.cc b/test/android/native_test_launcher.cc
index d3604f4..9f79341 100644
--- a/test/android/native_test_launcher.cc
+++ b/test/android/native_test_launcher.cc
@@ -122,3 +122,5 @@
 }  // namespace android
 }  // namespace test
 }  // namespace webrtc
+
+DEFINE_JNI(NativeTestWebrtc)