我的过程:
安装IntelliJ
创建新项目
使用文件添加JeroMQ>项目结构>全局库> org.zeromq:jeromq:0.5.1
在src中创建以下Java文件:
publisher.java
import org.zeromq.ZMQ;
import org.zeromq.ZContext;
import org.zeromq.SocketType;
import java.util.concurrent.TimeUnit;
public class publisher {
public static void main(String[] args) throws Exception
{
try (ZContext context = new ZContext()) {
// Socket to talk to clients
ZMQ.Socket socket = context.createSocket(SocketType.PUB);
socket.bind("tcp://*:5559");
System.out.println("starting loop");
String message = "hello";
while (!Thread.currentThread().isInterrupted()) {
// Block until a message is received
socket.send(message);
// Print the message
System.out.println(
"Sent: [" + message + "]"
);
TimeUnit.SECONDS.sleep(1);
}
}
}
}
subscriber.java
import org.zeromq.ZMQ;
import org.zeromq.ZContext;
import org.zeromq.SocketType;
public class subscriber {
public static void main(String[] args) throws Exception
{
try (ZContext context = new ZContext()) {
// Socket to talk to clients
ZMQ.Socket socket = context.createSocket(SocketType.SUB);
socket.connect("tcp://127.0.0.1:5559");
socket.subscribe("");
System.out.println("starting loop");
while (!Thread.currentThread().isInterrupted()) {
// Block until a message is received
String message = socket.recvStr(0);
// Print the message
System.out.println(
"Received: [" + message + "]"
);
}
}
}
}
同时运行publisher.java,然后运行subscriber.java。两者都可以。
下载Android Studio(我的版本-3.5.2)
创建新项目(为简单起见,基本活动,API 28 / Android 9.0)。
修改项目设置:文件>项目结构>模块>(编译SDK版本29,构建工具版本29.0.2,源代码兼容性1.8,目标兼容性1.8)
通过构建添加JeroMQ>编辑库和依赖项>依赖项> app> org.zeromq:jeromq:0.5.1
将以下类添加到app> java>(顶部文件夹):
subscriber.java
package com.example.testttt;
import org.zeromq.ZMQ;
import org.zeromq.ZContext;
import org.zeromq.SocketType;
public class subscriber implements Runnable {
@Override
public void run()
{
try (ZContext context = new ZContext()) {
// Socket to talk to clients
ZMQ.Socket socket = context.createSocket(SocketType.SUB);
socket.connect("tcp://10.0.2.2:5559");
socket.subscribe("");
System.out.println("starting loop");
while (!Thread.currentThread().isInterrupted()) {
// Block until a message is received
String message = socket.recvStr(0);
// Print the message
System.out.println(
"Received: [" + message + "]"
);
}
}
}
}
(注意:如此处(https://developer.android.com/studio/run/emulator-networking所示,使用10.0.2.2连接到本地主机)。
在Mainactivity.java文件中编辑onCreate方法,如下所示:
package com.example.testttt;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingactionButton;
import com.google.android.material.snackbar.snackbar;
import androidx.appcompat.app.AppCompatactivity;
import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
public class Mainactivity extends AppCompatactivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportactionBar(toolbar);
FloatingactionButton fab = findViewById(R.id.fab);
fab.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
snackbar.make(view,"Replace with your own action",snackbar.LENGTH_LONG)
.setaction("action",null).show();
}
});
new Thread(new subscriber()).start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button,so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
创建android虚拟设备(Pixel 2 API 28,x86)。启动它。
当Publisher.java仍在PC上运行时,单击“调试应用程序”。出现第一行“开始循环”,但没有其他消息出现。大约一分钟后,出现以下错误(这不是完整的输出,因为此帖子的正文受到限制):
A/example.testtt: java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: field operation on NULL object: 0x0
java_vm_ext.cc:542] in call to GetIntField
java_vm_ext.cc:542] from void sun.nio.ch.FileDispatcherImpl.preclose0(java.io.FileDescriptor)
java_vm_ext.cc:542] "FinalizerDaemon" daemon prio=5 tid=6 Runnable
java_vm_ext.cc:542] | group="system" sCount=0 dsCount=0 flags=0 obj=0x16400448 self=0xee1f8200
java_vm_ext.cc:542] | sysTid=4740 nice=4 cgrp=default sched=0/0 handle=0xd45a0970
java_vm_ext.cc:542] | state=R schedstat=( 720319 0 12 ) utm=0 stm=0 core=0 HZ=100
java_vm_ext.cc:542] | stack=0xd449d000-0xd449f000 stackSize=1042KB
java_vm_ext.cc:542] | held mutexes= "mutator lock"(shared held)
java_vm_ext.cc:542] native: #00 pc 004152f6 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char,std::__1::char_traits<char>>&,int,BacktraceMap*,char const*,art::ArtMethod*,void*,bool)+198)
java_vm_ext.cc:542] native: #01 pc 0051048e /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char,bool,bool) const+382)
java_vm_ext.cc:542] native: #02 pc 0050b743 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char,bool) const+83)
java_vm_ext.cc:542] native: #03 pc 0031a8b0 /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*,char const*)+1088)
java_vm_ext.cc:542] native: #04 pc 0031ad21 /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*,char*)+113)
A/example.testtt: java_vm_ext.cc:542] native: #05 pc 000d60f7 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*,...)+71)
java_vm_ext.cc:542] native: #06 pc 000dc5b3 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckFieldaccess(art::ScopedObjectaccess&,_jobject*,_jfieldID*,art::Primitive::Type)+323)
java_vm_ext.cc:542] native: #07 pc 000dbcc0 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::GetField(char const*,_JNIEnv*,art::Primitive::Type)+1056)
java_vm_ext.cc:542] native: #08 pc 000c5c84 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::GetIntField(_JNIEnv*,_jfieldID*)+68)
java_vm_ext.cc:542] native: #09 pc 0001680d /system/lib/libopenjdk.so (fdval+45)
java_vm_ext.cc:542] native: #10 pc 000179f9 /system/lib/libopenjdk.so (FileDispatcherImpl_preclose0+41)
java_vm_ext.cc:542] native: #11 pc 0011534a /system/framework/x86/boot.oat (offset 114000) (java.lang.System.setErr0 [DEDUPED]+170)
java_vm_ext.cc:542] native: #12 pc 005f0d52 /system/lib/libart.so (art_quick_invoke_static_stub+418)
java_vm_ext.cc:542] native: #13 pc 000a30df /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*,unsigned int*,unsigned int,art::JValue*,char const*)+239)
java_vm_ext.cc:542] native: #14 pc 0029bca2 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*,art::ShadowFrame*,unsigned short,art::JValue*)+338)
java_vm_ext.cc:542] native: #15 pc 00293e48 /system/lib/libart.so (bool art::interpreter::DoCall<false,false>(art::ArtMethod*,art::Thread*,art::ShadowFrame&,art::Instruction const*,art::JValue*)+1048)
java_vm_ext.cc:542] native: #16 pc 002d75be /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE0ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+158)
java_vm_ext.cc:542] native: #17 pc 002d1001 /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73761)
java_vm_ext.cc:542] native: #18 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #19 pc 0012b5c8 /system/framework/boot.vdex (sun.nio.ch.DatagramDispatcher.preclose)
java_vm_ext.cc:542] native: #20 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #21 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::CodeItemDataaccessor const&,art::JValue*)+220)
java_vm_ext.cc:542] native: #22 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #23 pc 002d44dd /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE2ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+669)
java_vm_ext.cc:542] native: #24 pc 002d10ad /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73933)
java_vm_ext.cc:542] native: #25 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #26 pc 0012f3b6 /system/framework/boot.vdex (sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel)
java_vm_ext.cc:542] native: #27 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #28 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #29 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #30 pc 002d44dd /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE2ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+669)
java_vm_ext.cc:542] native: #31 pc 002d10ad /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73933)
java_vm_ext.cc:542] native: #32 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #33 pc 000db5c2 /system/framework/boot.vdex (java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel)
java_vm_ext.cc:542] native: #34 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #35 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #36 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #37 pc 002d44dd /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE2ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+669)
java_vm_ext.cc:542] native: #38 pc 002d10ad /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73933)
java_vm_ext.cc:542] native: #39 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #40 pc 000db22a /system/framework/boot.vdex (java.nio.channels.spi.AbstractInterruptibleChannel.close)
java_vm_ext.cc:542] native: #41 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #42 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #43 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
A/example.testtt: java_vm_ext.cc:542] native: #44 pc 002d44dd /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE2ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+669)
java_vm_ext.cc:542] native: #45 pc 002d10ad /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73933)
java_vm_ext.cc:542] native: #46 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #47 pc 0012f398 /system/framework/boot.vdex (sun.nio.ch.SocketChannelImpl.finalize)
java_vm_ext.cc:542] native: #48 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #49 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #50 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #51 pc 002d44dd /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE2ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+669)
java_vm_ext.cc:542] native: #52 pc 002d10ad /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+73933)
java_vm_ext.cc:542] native: #53 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #54 pc 000aec02 /system/framework/boot-core-libart.vdex (java.lang.daemons$FinalizerDaemon.doFinalize)
java_vm_ext.cc:542] native: #55 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #56 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #57 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #58 pc 002d5fce /system/lib/libart.so (_ZN3art11interpreterL8DoInvokeILNS_10InvokeTypeE1ELb0ELb0EEEbPNS_6ThreadERNS_11ShadowFrameEPKNS_11InstructionEtPNS_6JValueE+286)
java_vm_ext.cc:542] native: #59 pc 002d184a /system/lib/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false,false>(art::interpreter::SwitchImplContext*)+75882)
java_vm_ext.cc:542] native: #60 pc 005f7762 /system/lib/libart.so (ExecuteSwitchImplAsm+18)
java_vm_ext.cc:542] native: #61 pc 000aec5c /system/framework/boot-core-libart.vdex (java.lang.daemons$FinalizerDaemon.runInternal)
java_vm_ext.cc:542] native: #62 pc 002661c9 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+521)
java_vm_ext.cc:542] native: #63 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #64 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #65 pc 005bc493 /system/lib/libart.so (MterpInvokeVirtual+691)
java_vm_ext.cc:542] native: #66 pc 005e2d21 /system/lib/libart.so (ExecuteMterpImpl+14241)
java_vm_ext.cc:542] native: #67 pc 000aeaf8 /system/framework/boot-core-libart.vdex (java.lang.daemons$Daemon.run+20)
java_vm_ext.cc:542] native: #68 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598)
java_vm_ext.cc:542] native: #69 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*,art::JValue*)+220)
java_vm_ext.cc:542] native: #70 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false,art::JValue*)+1019)
java_vm_ext.cc:542] native: #71 pc 005bd574 /system/lib/libart.so (MterpInvokeInterface+1444)
java_vm_ext.cc:542] native: #72 pc 005e2f21 /system/lib/libart.so (ExecuteMterpImpl+14753)
java_vm_ext.cc:542] native: #73 pc 000ca806 /system/framework/boot.vdex (java.lang.Thread.run+12)
java_vm_ext.cc:542] native: #74 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataaccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598)
java_vm_ext.cc:542] native: #75 pc 0026c68e /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*,art::ShadowFrame*)+126)
java_vm_ext.cc:542] native: #76 pc 005a953d /system/lib/libart.so (artQuickToInterpreterBridge+1277)
java_vm_ext.cc:542] native: #77 pc 005f6c6d /system/lib/libart.so (art_quick_to_interpreter_bridge+77)
java_vm_ext.cc:542] native: #78 pc 005f6dff /system/lib/libart.so (???)
java_vm_ext.cc:542] at sun.nio.ch.FileDispatcherImpl.preclose0(Native method)
java_vm_ext.cc:542] at sun.nio.ch.SocketDispatcher.preclose(SocketDispatcher.java:69)
java_vm_ext.cc:542] at sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel(SocketChannelImpl.java:885)
java_vm_ext.cc:542] - locked <0x07640989> (a java.lang.Object)
java_vm_ext.cc:542] at java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234)
java_vm_ext.cc:542] at java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:116)
java_vm_ext.cc:542] - locked <0x0975fd8e> (a java.lang.Object)
java_vm_ext.cc:542] at sun.nio.ch.SocketChannelImpl.finalize(SocketChannelImpl.java:939)
java_vm_ext.cc:542] at java.lang.daemons$FinalizerDaemon.doFinalize(daemons.java:250)
java_vm_ext.cc:542] at java.lang.daemons$FinalizerDaemon.runInternal(daemons.java:237)
java_vm_ext.cc:542] at java.lang.daemons$Daemon.run(daemons.java:103)
java_vm_ext.cc:542] at java.lang.Thread.run(Thread.java:764)
java_vm_ext.cc:542]
A/example.testtt: runtime.cc:558] Runtime aborting...
runtime.cc:558] Dumping all threads without appropriate locks held: thread list lock mutator lock
runtime.cc:558] All threads:
runtime.cc:558] DALVIK THREADS (19):
runtime.cc:558] "FinalizerDaemon" prio=5 tid=6 Runnable
runtime.cc:558] | group="" sCount=0 dsCount=0 flags=0 obj=0x16400448 self=0xee1f8200
runtime.cc:558] | sysTid=4740 nice=4 cgrp=default sched=0/0 handle=0xd45a0970
runtime.cc:558] | state=R schedstat=( 41366495 1328311 69 ) utm=2 stm=2 core=0 HZ=100
runtime.cc:558] | stack=0xd449d000-0xd449f000 stackSize=1042KB
runtime.cc:558] | held mutexes= "abort lock" "mutator lock"(shared held)
runtime.cc:558] native: #00 pc 004152f6 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char,bool)+198)
runtime.cc:558] native: #01 pc 0051048e /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char,bool) const+382)
runtime.cc:558] native: #02 pc 0050b743 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char,bool) const+83)
runtime.cc:558] native: #03 pc 0052e564 /system/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+916)
runtime.cc:558] native: #04 pc 00526286 /system/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*,art::Closure*)+534)
runtime.cc:558] native: #05 pc 005254d4 /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char,bool)+1316)
runtime.cc:558] native: #06 pc 004efdcc /system/lib/libart.so (art::AbortState::DumpAllThreads(std::__1::basic_ostream<char,art::Thread*) const+284)
runtime.cc:558] native: #07 pc 004dc52f /system/lib/libart.so (art::Runtime::Abort(char const*)+287)
runtime.cc:558] native: #08 pc 005cd833 /system/lib/libart.so (_ZNSt3__110__function6__funcIPFvPKcENS_9allocatorIS5_EES4_EcleoS3_+35)
runtime.cc:558] native: #09 pc 00007ccc /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+828)
runtime.cc:558] native: #10 pc 0031ab5f /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*,char const*)+1775)
runtime.cc:558] native: #11 pc 0031ad21 /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*,char*)+113)
runtime.cc:558] native: #12 pc 000d60f7 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*,...)+71)
runtime.cc:558] native: #13 pc 000dc5b3 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckFieldaccess(art::ScopedObjectaccess&,art::Primitive::Type)+323)
runtime.cc:558] native: #14 pc 000dbcc0 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::GetField(char const*,art::Primitive::Type)+1056)
runtime.cc:558] native: #15 pc 000c5c84 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::GetIntField(_JNIEnv*,_jfieldID*)+68)
runtime.cc:558] native: #16 pc 0001680d /system/lib/libopenjdk.so (fdval+45)
runtime.cc:558] native: #17 pc 000179f9 /system/lib/libopenjdk.so (FileDispatcherImpl_preclose0+41)
runtime.cc:558] at sun.nio.ch.FileDispatcherImpl.preclose0(Native method)
runtime.cc:558] at sun.nio.ch.SocketDispatcher.preclose(SocketDispatcher.java:69)
runtime.cc:558] at sun.nio.ch.SocketChannelImpl.implCloseSelectableChannel(SocketChannelImpl.java:885)
runtime.cc:558] - locked <0x07640989> (a java.lang.Object)
runtime.cc:558] at java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234)
runtime.cc:558] at java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:116)
runtime.cc:558] - locked <0x0975fd8e> (a java.lang.Object)
A/example.testtt: runtime.cc:558] at sun.nio.ch.SocketChannelImpl.finalize(SocketChannelImpl.java:939)
runtime.cc:558] at java.lang.daemons$FinalizerDaemon.doFinalize(daemons.java:250)
runtime.cc:558] at java.lang.daemons$FinalizerDaemon.runInternal(daemons.java:237)
runtime.cc:558] at java.lang.daemons$Daemon.run(daemons.java:103)
runtime.cc:558] at java.lang.Thread.run(Thread.java:764)
runtime.cc:558]
runtime.cc:558] "main" prio=5 tid=1 Native
runtime.cc:558] | group="" sCount=1 dsCount=0 flags=1 obj=0x756c6ee0 self=0xee1f4000
runtime.cc:558] | sysTid=4694 nice=-10 cgrp=default sched=0/0 handle=0xf2dbb494
runtime.cc:558] | state=S schedstat=( 916061562 62246943 365 ) utm=72 stm=19 core=3 HZ=100
runtime.cc:558] | stack=0xff6bc000-0xff6be000 stackSize=8MB
runtime.cc:558] | held mutexes=
runtime.cc:558] kernel: ep_poll+0x28e/0x33f
runtime.cc:558] kernel: SyS_epoll_wait+0x96/0xb4
runtime.cc:558] kernel: SyS_epoll_pwait+0x93/0x114
runtime.cc:558] kernel: do_fast_syscall_32+0xd5/0x148
runtime.cc:558] kernel: sysenter_flags_fixed+0x8/0x12
任何提示我在做什么错吗?