学习android JNI的那些事儿--------5. Field & Method --> Accessing Mehtod

本文详细介绍了如何在JNI中访问并调用Java中的非静态与静态成员函数,通过实例展示了从Java到JNI的函数调用过程,以及在Android应用中利用JNI与Java集成实现功能增强的方法。

在java编程语言中有非静态成员函数和静态成员函数,JNI允许我们访问到java中的成员函数,然后再jni中调用,这里我就来举例说明在jni中是如何做到的。

我们先在java中定义2个成员函数,一个非静态的,一个是静态的,分别会把title的textView设置成不同的值:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mContext = this;
        bt1 = (Button)findViewById(R.id.button1);
        bt2 = (Button)findViewById(R.id.button2);
        tv = (TextView)findViewById(R.id.tv);
        tv.setText(""+si);
        bt1.setOnClickListener(new MyButtonListener());
        bt2.setOnClickListener(new MyButtonListener());
    }
    class MyButtonListener implements OnClickListener{

		public void onClick(View v) {
			if(v.getId() == R.id.button1 ){
				accessInstanceMethod("Instance Method Call");
			}
			if(v.getId() == R.id.button2 ){
				accessInstanceMethod("Static Method Call");
			}
		}
    }
    private void InstanceMethod(String str)
    {
    	tv.setText(str);
    }
    private void static StaticMethod(String str)
    {
    	tv.setText(str);
    }
    public native void accessInstanceMethod(String str);
    public native void accessStaticMethod(String str);

我们再来看下jni中是如何处理的:

void 
Java_com_android_jni_MyJNI_accessInstanceMethod(JNIEnv *env,
		jobject obj, jstring jstr)
{
	const jbyte *str;
	str = (*env)->GetStringUTFChars(env,jstr,NULL);
	if(str == NULL)
		return ;
	__android_log_print(ANDROID_LOG_INFO,"-JNI-","%s",str);
	(*env)->ReleaseStringUTFChars(env,jstr,str);

	jclass cls = (*env)->GetObjectClass(env,obj);
	jmethodID mid = 
		(*env)->GetMethodID(env,cls,"InstanceMethod",
				"(Ljava/lang/String;)V");
	if(mid == NULL)
		return ;
	(*env)->CallVoidMethod(env,obj,mid,jstr);
}

void
Java_com_android_jni_MyJNI_accessStaticMethod(JNIEnv *env,
		jobject obj, jstring jstr)
{
	const jbyte *str;
	str = (*env)->GetStringUTFChars(env,jstr,NULL);
	if(str == NULL)
		return;
	__android_log_print(ANDROID_LOG_INFO,"-JNI-","%s",str);
	(*env)->ReleaseStringUTFChars(env,jstr,str);

	jclass cls = (*env)->GetObjectClass(env,obj);
	jmethodID mid = 
		(*env)->GetStaticMethodID(env,cls,"StaticMethod",
				"(Ljava/lang/String;)V");
	if(mid == NULL)
		return ;
	(*env)->CallStaticVoidMethod(env,obj,mid,jstr);
}

这边都比较简单,先是找到class,然后得到method ID,之后是根据method ID调用JAVA中的function

运行模拟器,点击不同的按钮观察title的textView:


-----------------------------------------------------------------------------------------------------

调用java的method就介绍到这,关于别的返回值的函数大家可以自己去尝试,用法都是差不多的。

---------------------------- PROCESS ENDED (4596) for package com.kotei.fusionpositiondemo.debug ---------------------------- 2025-08-05 15:13:33.804 4972-4972 nativeloader com.kotei.fusionpositiondemo.debug D Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok 2025-08-05 15:13:33.899 4972-4972 nativeloader com.kotei.fusionpositiondemo.debug D Load /data/user/0/com.kotei.fusionpositiondemo.debug/code_cache/startup_agents/9758b833-agent.so using system ns (caller=<unknown>): ok 2025-08-05 15:13:33.929 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug W hiddenapi: DexFile /data/data/com.kotei.fusionpositiondemo.debug/code_cache/.studio/instruments-07dd17c6.jar is in boot class path but is not in a known location 2025-08-05 15:13:34.006 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug W Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled. 2025-08-05 15:13:34.006 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug W Redefining intrinsic method boolean java.lang.Thread.interrupted(). This may cause the unexpected use of the original definition of boolean java.lang.Thread.interrupted()in methods that have already been compiled. 2025-08-05 15:13:34.039 4972-4972 CompatChangeReporter com.kotei.fusionpositiondemo.debug D Compat change id reported: 242716250; UID 10216; state: ENABLED ---------------------------- PROCESS STARTED (4972) for package com.kotei.fusionpositiondemo.debug ---------------------------- 2025-08-05 15:13:34.216 4972-4972 nativeloader com.kotei.fusionpositiondemo.debug D Configuring clns-9 for other apk /data/app/~~iRz61aG51jr6IKfcBO13Pw==/com.kotei.fusionpositiondemo.debug-NtZ59R1bU1VaYYMSRrjpBA==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~iRz61aG51jr6IKfcBO13Pw==/com.kotei.fusionpositiondemo.debug-NtZ59R1bU1VaYYMSRrjpBA==/lib/x86_64:/data/app/~~iRz61aG51jr6IKfcBO13Pw==/com.kotei.fusionpositiondemo.debug-NtZ59R1bU1VaYYMSRrjpBA==/base.apk!/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.kotei.fusionpositiondemo.debug 2025-08-05 15:13:34.220 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f55878) locale list changing from [] to [en-US] 2025-08-05 15:13:34.222 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f52cb8) locale list changing from [] to [en-US] 2025-08-05 15:13:34.229 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V Currently set values for: 2025-08-05 15:13:34.229 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V angle_gl_driver_selection_pkgs=[] 2025-08-05 15:13:34.229 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V angle_gl_driver_selection_values=[] 2025-08-05 15:13:34.230 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V com.kotei.fusionpositiondemo.debug is not listed in per-application setting 2025-08-05 15:13:34.230 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V ANGLE allowlist from config: 2025-08-05 15:13:34.230 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V com.kotei.fusionpositiondemo.debug is not listed in ANGLE allowlist or settings, returning default 2025-08-05 15:13:34.230 4972-4972 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V Neither updatable production driver nor prerelease driver is supported. 2025-08-05 15:13:34.236 4972-4972 ActivityThread com.kotei.fusionpositiondemo.debug W Application com.kotei.fusionpositiondemo.debug is suspending. Debugger needs to resume to continue. 2025-08-05 15:13:34.237 4972-4972 System.out com.kotei.fusionpositiondemo.debug I Sending WAIT chunk 2025-08-05 15:13:34.237 4972-4972 System.out com.kotei.fusionpositiondemo.debug I Waiting for debugger first packet 2025-08-05 15:13:35.002 536-536 adbd adbd E failed to connect to socket 'localabstract:/com.kotei.fusionpositiondemo.debug-0/platform-1754378014920.sock': could not connect to localabstract address 'localabstract:/com.kotei.fusionpositiondemo.debug-0/platform-1754378014920.sock' 2025-08-05 15:13:36.788 4972-4976 nativeloader com.kotei.fusionpositiondemo.debug D Load libjdwp.so using system ns (caller=<unknown>): ok 2025-08-05 15:13:36.988 4972-4972 System.out com.kotei.fusionpositiondemo.debug I Debug.suspendAllAndSentVmStart 2025-08-05 15:13:37.347 4972-4972 System.out com.kotei.fusionpositiondemo.debug I Debug.suspendAllAndSendVmStart, resumed 2025-08-05 15:13:37.400 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowManagerSpy$windowManagerInstance$2; (domain=app) using reflection: allowed 2025-08-05 15:13:37.401 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/view/WindowManagerGlobal;->mViews:Ljava/util/ArrayList; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowManagerSpy$mViewsField$2; (domain=app) using reflection: allowed 2025-08-05 15:13:37.401 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/app/ActivityThread;->mH:Landroid/app/ActivityThread$H; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 15:13:37.402 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher$activityThreadInstance$2; (domain=app) using reflection: allowed 2025-08-05 15:13:37.402 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/os/Handler;->mCallback:Landroid/os/Handler$Callback; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 15:13:37.402 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/util/Singleton;->mInstance:Ljava/lang/Object; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 15:13:37.402 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/util/Singleton;->get()Ljava/lang/Object; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 15:13:37.403 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/app/ActivityManager;->IActivityManagerSingleton:Landroid/util/Singleton; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 15:13:37.431 4972-5040 DisplayManager com.kotei.fusionpositiondemo.debug I Choreographer implicitly registered for the refresh rate. 2025-08-05 15:13:37.438 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f52678) locale list changing from [] to [en-US] 2025-08-05 15:13:37.483 4972-4972 AppCompatDelegate com.kotei.fusionpositiondemo.debug D Checking for metadata for AppLocalesMetadataHolderService : Service not found 2025-08-05 15:13:37.484 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f55558) locale list changing from [] to [en-US] 2025-08-05 15:13:37.506 4972-4972 ashmem com.kotei.fusionpositiondemo.debug E Pinning is deprecated since Android Q. Please use trim or other methods. 2025-08-05 15:13:37.809 4972-5038 itiondemo.debug com.kotei.fusionpositiondemo.debug W Verification of void leakcanary.RemoteWorkManagerHeapAnalyzer.onEvent(leakcanary.EventListener$Event) took 299.711ms (517.16 bytecodes/s) (0B arena alloc) 2025-08-05 15:13:38.107 4972-5038 LeakCanary com.kotei.fusionpositiondemo.debug D LeakCanary is currently disabled: Waiting for debugger to detach. 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: passive 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: network 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: fused 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: gps 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: passive 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: fused 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: gps 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: passive 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: network 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: fused 2025-08-05 15:13:38.112 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: gps 2025-08-05 15:13:38.113 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getGnssHardwareModelName: Android Studio Emulator GPS 2025-08-05 15:13:38.185 4972-5040 EGL_emulation com.kotei.fusionpositiondemo.debug I Opening libGLESv1_CM_emulation.so 2025-08-05 15:13:38.185 4972-5040 EGL_emulation com.kotei.fusionpositiondemo.debug I Opening libGLESv2_emulation.so 2025-08-05 15:13:38.190 4972-5040 HWUI com.kotei.fusionpositiondemo.debug W Failed to initialize 101010-2 format, error = EGL_SUCCESS 2025-08-05 15:13:38.261 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug W Verification of void com.kotei.fusionpositioningengine.FusionPositionManager$3.onLocationChanged(android.location.Location) took 145.249ms (1184.17 bytecodes/s) (0B arena alloc) 2025-08-05 15:13:38.298 4972-4972 DesktopModeFlags com.kotei.fusionpositiondemo.debug D Toggle override initialized to: OVERRIDE_UNSET 2025-08-05 15:13:38.347 4972-4972 HWUI com.kotei.fusionpositiondemo.debug W Image decoding logging dropped! 2025-08-05 15:13:38.351 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (runtime_flags=0, domain=platform, api=unsupported) from Landroidx/appcompat/widget/ViewUtils; (domain=app) using reflection: allowed 2025-08-05 15:13:38.351 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (runtime_flags=0, domain=platform, api=unsupported) from Landroidx/appcompat/widget/ViewUtils; (domain=app) using reflection: allowed 2025-08-05 15:13:38.374 4972-4972 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Lcom/android/internal/policy/DecorView;->mWindow:Lcom/android/internal/policy/PhoneWindow; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowSpy$windowField$2; (domain=app) using reflection: allowed 2025-08-05 15:13:38.376 4972-4972 HWUI com.kotei.fusionpositiondemo.debug W Unknown dataspace 0 2025-08-05 15:13:38.895 4972-4977 itiondemo.debug com.kotei.fusionpositiondemo.debug I Compiler allocated 5042KB to compile void android.view.ViewRootImpl.performTraversals() 2025-08-05 15:13:39.047 4972-4972 InsetsController com.kotei.fusionpositiondemo.debug D hide(ime(), fromIme=false) 2025-08-05 15:13:39.047 4972-4972 ImeTracker com.kotei.fusionpositiondemo.debug I com.kotei.fusionpositiondemo.debug:b7546c62: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN 2025-08-05 15:13:39.122 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 15:13:40.092 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 15:13:41.092 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 15:13:42.095 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 15:13:42.103 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager GPS_PROVIDER getLatitude: 37.421998333333335 2025-08-05 15:13:42.104 4972-4972 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager GPS_PROVIDER getLongitude: -122.084 2025-08-05 15:13:42.122 4972-4972 System.out com.kotei.fusionpositiondemo.debug I 2025-08-05 15:13:42.121 [com.kotei.fusionpositionengine.FusionPosition] 初始化融合定位引擎 2025-08-05 15:13:42.235 4972-4972 nativeloader com.kotei.fusionpositiondemo.debug D Load /data/app/~~iRz61aG51jr6IKfcBO13Pw==/com.kotei.fusionpositiondemo.debug-NtZ59R1bU1VaYYMSRrjpBA==/base.apk!/lib/x86_64/libkoteiLocationJni.so using class loader ns clns-9 (caller=/data/app/~~iRz61aG51jr6IKfcBO13Pw==/com.kotei.fusionpositiondemo.debug-NtZ59R1bU1VaYYMSRrjpBA==/base.apk!classes2.dex): ok 2025-08-05 15:13:42.257 4972-4972 AndroidRuntime com.kotei.fusionpositiondemo.debug D Shutting down VM 2025-08-05 15:13:42.259 4972-4972 AndroidRuntime com.kotei.fusionpositiondemo.debug E FATAL EXCEPTION: main Process: com.kotei.fusionpositiondemo.debug, PID: 4972 com.kotei.fusionpositionengine.NativeException: Failed to set CarMsg message at com.kotei.fusionpositionengine.FusionPosition.setCarMsg(FusionPosition.java:153) at com.kotei.fusionpositioningengine.FusionPositionManager$3.onLocationChanged(FusionPositionManager.java:101) at android.location.LocationListener.onLocationChanged(LocationListener.java:63) at android.location.LocationManager$LocationListenerTransport$1.operate(LocationManager.java:3303) at android.location.LocationManager$LocationListenerTransport$1.operate(LocationManager.java:3300) at com.android.internal.listeners.ListenerExecutor.lambda$executeSafely$0(ListenerExecutor.java:127) at com.android.internal.listeners.ListenerExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) Caused by: java.lang.RuntimeException: Field mAccuracy not found at com.kotei.fusionpositionengine.FusionPositionJNI.setCarMsg(Native Method) at com.kotei.fusionpositionengine.FusionPosition.setCarMsg(FusionPosition.java:150) ... 14 more 2025-08-05 15:13:42.266 4972-4972 Process com.kotei.fusionpositiondemo.debug I Sending signal. PID: 4972 SIG: 9 ---------------------------- PROCESS ENDED (4972) for package com.kotei.fusionpositiondemo.debug ---------------------------- 2025-08-05 15:13:42.280 714-809 InputDispatcher system_server E channel 'e97d02e com.kotei.fusionpositiondemo.debug/com.kotei.fusionpositioningengine.MainActivity' ~ Channel is unrecoverably broken and will be disposed! 2025-08-05 15:13:42.290 714-735 AppOps system_server E Operation not started: uid=10216 pkg=com.kotei.fusionpositiondemo.debug(null) op=GPS 以逻辑图方式总结log
最新发布
08-06
2025-08-05 14:56:55.227 4304-4304 nativeloader com.kotei.fusionpositiondemo.debug D Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok 2025-08-05 14:56:55.272 4304-4304 re-initialized> com.kotei.fusionpositiondemo.debug W type=1400 audit(0.0:98): avc: granted { execute } for path="/data/data/com.kotei.fusionpositiondemo.debug/code_cache/startup_agents/9758b833-agent.so" dev="dm-55" ino=361267 scontext=u:r:untrusted_app:s0:c216,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c216,c256,c512,c768 tclass=file app=com.kotei.fusionpositiondemo.debug 2025-08-05 14:56:55.286 4304-4304 nativeloader com.kotei.fusionpositiondemo.debug D Load /data/user/0/com.kotei.fusionpositiondemo.debug/code_cache/startup_agents/9758b833-agent.so using system ns (caller=<unknown>): ok 2025-08-05 14:56:55.296 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug W hiddenapi: DexFile /data/data/com.kotei.fusionpositiondemo.debug/code_cache/.studio/instruments-07dd17c6.jar is in boot class path but is not in a known location 2025-08-05 14:56:55.415 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug W Redefining intrinsic method java.lang.Thread java.lang.Thread.currentThread(). This may cause the unexpected use of the original definition of java.lang.Thread java.lang.Thread.currentThread()in methods that have already been compiled. 2025-08-05 14:56:55.415 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug W Redefining intrinsic method boolean java.lang.Thread.interrupted(). This may cause the unexpected use of the original definition of boolean java.lang.Thread.interrupted()in methods that have already been compiled. 2025-08-05 14:56:55.421 4304-4304 CompatChangeReporter com.kotei.fusionpositiondemo.debug D Compat change id reported: 242716250; UID 10216; state: ENABLED ---------------------------- PROCESS STARTED (4304) for package com.kotei.fusionpositiondemo.debug ---------------------------- 2025-08-05 14:56:55.571 4304-4304 nativeloader com.kotei.fusionpositiondemo.debug D Configuring clns-9 for other apk /data/app/~~uvNMhw23neOo_A1NTEkLtA==/com.kotei.fusionpositiondemo.debug-p0bOkHYIGwiXe_JjzTFaBg==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~uvNMhw23neOo_A1NTEkLtA==/com.kotei.fusionpositiondemo.debug-p0bOkHYIGwiXe_JjzTFaBg==/lib/x86_64, permitted_path=/data:/mnt/expand:/data/user/0/com.kotei.fusionpositiondemo.debug 2025-08-05 14:56:55.575 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f55878) locale list changing from [] to [en-US] 2025-08-05 14:56:55.577 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f52cb8) locale list changing from [] to [en-US] 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V Currently set values for: 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V angle_gl_driver_selection_pkgs=[] 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V angle_gl_driver_selection_values=[] 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V com.kotei.fusionpositiondemo.debug is not listed in per-application setting 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V ANGLE allowlist from config: 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V com.kotei.fusionpositiondemo.debug is not listed in ANGLE allowlist or settings, returning default 2025-08-05 14:56:55.581 4304-4304 GraphicsEnvironment com.kotei.fusionpositiondemo.debug V Neither updatable production driver nor prerelease driver is supported. 2025-08-05 14:56:55.583 4304-4304 ActivityThread com.kotei.fusionpositiondemo.debug W Application com.kotei.fusionpositiondemo.debug is suspending. Debugger needs to resume to continue. 2025-08-05 14:56:55.583 4304-4304 System.out com.kotei.fusionpositiondemo.debug I Sending WAIT chunk 2025-08-05 14:56:55.584 4304-4304 System.out com.kotei.fusionpositiondemo.debug I Waiting for debugger first packet 2025-08-05 14:56:58.311 536-536 adbd adbd E failed to connect to socket 'localabstract:/com.kotei.fusionpositiondemo.debug-0/platform-1754377016312.sock': could not connect to localabstract address 'localabstract:/com.kotei.fusionpositiondemo.debug-0/platform-1754377016312.sock' 2025-08-05 14:57:03.533 4304-4307 nativeloader com.kotei.fusionpositiondemo.debug D Load libjdwp.so using system ns (caller=<unknown>): ok 2025-08-05 14:57:03.746 4304-4304 System.out com.kotei.fusionpositiondemo.debug I Debug.suspendAllAndSentVmStart 2025-08-05 14:57:04.472 4304-4304 System.out com.kotei.fusionpositiondemo.debug I Debug.suspendAllAndSendVmStart, resumed 2025-08-05 14:57:04.611 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/WindowManagerGlobal;->getInstance()Landroid/view/WindowManagerGlobal; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowManagerSpy$windowManagerInstance$2; (domain=app) using reflection: allowed 2025-08-05 14:57:04.611 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/view/WindowManagerGlobal;->mViews:Ljava/util/ArrayList; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowManagerSpy$mViewsField$2; (domain=app) using reflection: allowed 2025-08-05 14:57:04.611 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/app/ActivityThread;->mH:Landroid/app/ActivityThread$H; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 14:57:04.611 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/app/ActivityThread;->currentActivityThread()Landroid/app/ActivityThread; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher$activityThreadInstance$2; (domain=app) using reflection: allowed 2025-08-05 14:57:04.612 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/os/Handler;->mCallback:Landroid/os/Handler$Callback; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 14:57:04.612 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/util/Singleton;->mInstance:Ljava/lang/Object; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 14:57:04.612 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/util/Singleton;->get()Ljava/lang/Object; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 14:57:04.612 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Landroid/app/ActivityManager;->IActivityManagerSingleton:Landroid/util/Singleton; (runtime_flags=0, domain=platform, api=unsupported) from Lleakcanary/ServiceWatcher; (domain=app) using reflection: allowed 2025-08-05 14:57:04.699 4304-4376 DisplayManager com.kotei.fusionpositiondemo.debug I Choreographer implicitly registered for the refresh rate. 2025-08-05 14:57:04.705 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f55558) locale list changing from [] to [en-US] 2025-08-05 14:57:04.948 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug W Verification of android.content.Context androidx.appcompat.app.AppCompatDelegateImpl.attachBaseContext2(android.content.Context) took 107.951ms (1593.30 bytecodes/s) (0B arena alloc) 2025-08-05 14:57:05.412 4304-4304 AppCompatDelegate com.kotei.fusionpositiondemo.debug D Checking for metadata for AppLocalesMetadataHolderService : Service not found 2025-08-05 14:57:05.413 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I AssetManager2(0x70d598f58a78) locale list changing from [] to [en-US] 2025-08-05 14:57:05.462 4304-4304 ashmem com.kotei.fusionpositiondemo.debug E Pinning is deprecated since Android Q. Please use trim or other methods. 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: passive 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: network 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: fused 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getAllProviders: gps 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: passive 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: fused 2025-08-05 14:57:05.526 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders true: gps 2025-08-05 14:57:05.527 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: passive 2025-08-05 14:57:05.527 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: network 2025-08-05 14:57:05.527 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: fused 2025-08-05 14:57:05.527 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getProviders false: gps 2025-08-05 14:57:05.527 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager getGnssHardwareModelName: Android Studio Emulator GPS 2025-08-05 14:57:05.530 4304-4375 LeakCanary com.kotei.fusionpositiondemo.debug D LeakCanary is currently disabled: Waiting for debugger to detach. 2025-08-05 14:57:05.532 4304-4376 EGL_emulation com.kotei.fusionpositiondemo.debug I Opening libGLESv1_CM_emulation.so 2025-08-05 14:57:05.532 4304-4376 EGL_emulation com.kotei.fusionpositiondemo.debug I Opening libGLESv2_emulation.so 2025-08-05 14:57:05.537 4304-4376 HWUI com.kotei.fusionpositiondemo.debug W Failed to initialize 101010-2 format, error = EGL_SUCCESS 2025-08-05 14:57:05.691 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug W Verification of void com.kotei.fusionpositioningengine.FusionPositionManager$3.onLocationChanged(android.location.Location) took 159.490ms (1078.43 bytecodes/s) (0B arena alloc) 2025-08-05 14:57:05.706 4304-4304 DesktopModeFlags com.kotei.fusionpositiondemo.debug D Toggle override initialized to: OVERRIDE_UNSET 2025-08-05 14:57:05.761 4304-4304 HWUI com.kotei.fusionpositiondemo.debug W Image decoding logging dropped! 2025-08-05 14:57:05.764 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (runtime_flags=0, domain=platform, api=unsupported) from Landroidx/appcompat/widget/ViewUtils; (domain=app) using reflection: allowed 2025-08-05 14:57:05.764 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (runtime_flags=0, domain=platform, api=unsupported) from Landroidx/appcompat/widget/ViewUtils; (domain=app) using reflection: allowed 2025-08-05 14:57:05.783 4304-4304 itiondemo.debug com.kotei.fusionpositiondemo.debug I hiddenapi: Accessing hidden field Lcom/android/internal/policy/DecorView;->mWindow:Lcom/android/internal/policy/PhoneWindow; (runtime_flags=0, domain=platform, api=unsupported) from Lcurtains/internal/WindowSpy$windowField$2; (domain=app) using reflection: allowed 2025-08-05 14:57:05.785 4304-4304 HWUI com.kotei.fusionpositiondemo.debug W Unknown dataspace 0 2025-08-05 14:57:06.288 4304-4308 itiondemo.debug com.kotei.fusionpositiondemo.debug I Compiler allocated 5042KB to compile void android.view.ViewRootImpl.performTraversals() 2025-08-05 14:57:06.422 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 14:57:06.501 4304-4304 InsetsController com.kotei.fusionpositiondemo.debug D hide(ime(), fromIme=false) 2025-08-05 14:57:06.501 4304-4304 ImeTracker com.kotei.fusionpositiondemo.debug I com.kotei.fusionpositiondemo.debug:31c4fb58: onCancelled at PHASE_CLIENT_ALREADY_HIDDEN 2025-08-05 14:57:06.990 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 14:57:07.976 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 14:57:08.979 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 14:57:09.979 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager onSatelliteStatusChanged: 6 2025-08-05 14:57:09.987 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager GPS_PROVIDER getLatitude: 37.421998333333335 2025-08-05 14:57:09.987 4304-4304 com.kotei....ionManager com.kotei.fusionpositiondemo.debug D initLocationManager GPS_PROVIDER getLongitude: -122.084 2025-08-05 14:57:10.022 4304-4304 System.out com.kotei.fusionpositiondemo.debug I 2025-08-05 14:57:10.022 [com.kotei.fusionpositionengine.FusionPosition] 初始化融合定位引擎 2025-08-05 14:57:10.023 4304-4304 nativeloader com.kotei.fusionpositiondemo.debug D Load libkoteiLocationJni.so using class loader ns clns-9 (caller=/data/app/~~uvNMhw23neOo_A1NTEkLtA==/com.kotei.fusionpositiondemo.debug-p0bOkHYIGwiXe_JjzTFaBg==/base.apk!classes2.dex): dlopen failed: library "libkoteiLocationJni.so" not found 2025-08-05 14:57:10.024 4304-4304 AndroidRuntime com.kotei.fusionpositiondemo.debug D Shutting down VM 2025-08-05 14:57:10.074 4304-4304 AndroidRuntime com.kotei.fusionpositiondemo.debug E FATAL EXCEPTION: main Process: com.kotei.fusionpositiondemo.debug, PID: 4304 java.lang.UnsatisfiedLinkError: dlopen failed: library "libkoteiLocationJni.so" not found at java.lang.Runtime.loadLibrary0(Runtime.java:1090) at java.lang.Runtime.loadLibrary0(Runtime.java:1012) at java.lang.System.loadLibrary(System.java:1765) at com.kotei.fusionpositionengine.FusionPositionJNI.<clinit>(FusionPositionJNI.java:7) at com.kotei.fusionpositionengine.FusionPosition.<init>(FusionPosition.java:42) at com.kotei.fusionpositionengine.FusionPosition.<init>(FusionPosition.java:18) at com.kotei.fusionpositionengine.FusionPosition$MInstanceHolder.<clinit>(FusionPosition.java:52) at com.kotei.fusionpositionengine.FusionPosition.getInstance(FusionPosition.java:60) at com.kotei.fusionpositioningengine.FusionPositionManager$3.onLocationChanged(FusionPositionManager.java:94) at android.location.LocationListener.onLocationChanged(LocationListener.java:63) at android.location.LocationManager$LocationListenerTransport$1.operate(LocationManager.java:3303) at android.location.LocationManager$LocationListenerTransport$1.operate(LocationManager.java:3300) at com.android.internal.listeners.ListenerExecutor.lambda$executeSafely$0(ListenerExecutor.java:127) at com.android.internal.listeners.ListenerExecutor$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0) at android.os.Handler.handleCallback(Handler.java:995) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loopOnce(Looper.java:248) at android.os.Looper.loop(Looper.java:338) at android.app.ActivityThread.main(ActivityThread.java:9067) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:593) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:932) 2025-08-05 14:57:10.081 4304-4304 Process com.kotei.fusionpositiondemo.debug I Sending signal. PID: 4304 SIG: 9 2025-08-05 14:57:10.091 714-809 InputDispatcher system_server E channel '8dca3a2 com.kotei.fusionpositiondemo.debug/com.kotei.fusionpositioningengine.MainActivity' ~ Channel is unrecoverably broken and will be disposed! ---------------------------- PROCESS ENDED (4304) for package com.kotei.fusionpositiondemo.debug ----------------------------
08-06
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值