Thread.java中的java.lang.InternalError
在我的应用程序中,一些设备发生了奇怪的崩溃。我以前从未见过这种错误。这是stacktraceThread.java中的java.lang.InternalError,java,android,multithreading,Java,Android,Multithreading,在我的应用程序中,一些设备发生了奇怪的崩溃。我以前从未见过这种错误。这是stacktrace Non-fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown at java.lang.Thread.nativeCreate(Thread.java) at java.lang.Thread.start(Thread.java:1063) at jav
Non-fatal Exception: java.lang.InternalError: Thread starting during runtime shutdown
at java.lang.Thread.nativeCreate(Thread.java)
at java.lang.Thread.start(Thread.java:1063)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:921)
at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:989)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1131)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
我不知道怎么解决它。请帮帮我 根据android sourcecode,当nativeCreate中的线程发生内部异常时,正确的原因是进程运行时线程处于关闭状态:
// Atomically start the birth of the thread ensuring the runtime isn't shutting down.
bool thread_start_during_shutdown = false;
{
MutexLock mu(self, *Locks::runtime_shutdown_lock_);
if (runtime->IsShuttingDownLocked()) {
thread_start_during_shutdown = true;
} else {
runtime->StartThreadBirth();
}
}
if (thread_start_during_shutdown) {
ScopedLocalRef<jclass> error_class(env, env->FindClass("java/lang/InternalError"));
env->ThrowNew(error_class.get(), "Thread starting during runtime shutdown");
return;
}
//以原子方式启动线程的诞生,确保运行时不会关闭。
关闭期间bool线程启动=false;
{
MutexLock mu(self,*Locks::runtime\u shutdown\u lock);
如果(运行时->IsShuttingDownLocked()){
线程在关闭期间启动=真;
}否则{
运行时->开始线程出生();
}
}
如果(线程在关闭期间启动){
ScopedLocalRef错误_类(env,env->FindClass(“java/lang/InternalError”);
env->ThrowNew(错误_class.get(),“运行时关机期间线程启动”);
返回;
}
能否请您分享更多详细信息(代码、错误案例等)浏览此链接可能对您有所帮助。