在我的Firebase崩溃报告中,我收到了android.os.NetworkOnMainThreadException。问题在于它是从我不认识的方法中说出来的。 " MainActivity.a()"
android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork (StrictMode.java:1145)
java.net.InetAddress.lookupHostByName (InetAddress.java:385)
java.net.InetAddress.getAllByNameImpl (InetAddress.java:236)
java.net.InetAddress.getByName (InetAddress.java:289)
--> com.mycompany.h.h ()
--> com.mycompany.h.b ()
--> com.mycompany.myapp.MainActivity.a ()
--> com.mycompany.myapp.MainActivity.a ()
--> com.mycompany.myapp.MainActivity$127.onClick ()
android.support.v7.app.d$b.handleMessage ()
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:136)
android.app.ActivityThread.main (ActivityThread.java:5102)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:785)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:601)
dalvik.system.NativeStart.main (NativeStart.java)
我用箭头标记的那些,我不知道在哪里跟踪它们,因为这些方法不存在于我的代码中。
作为另一个额外的好处,我只是在API 19上遇到此问题。我在API 23上进行了测试,而且我的目标也是23。
我的应用程序发送和接收OSC信息,因此尝试追踪哪个单独的方法可能意外地在MainThread上发送了一些东西是有挑战性的,但是,我发送OSC命令的唯一方法是通过AsyncTask,所以我不确定问题可能是什么。
答案 0 :(得分:1)
也许你在混淆你的应用程序这种情况你的日志不能用这种方法,如果你把你的应用程序推送到AppStore,你可以尝试反编译你的应用程序并找到这种方法的位置,或者你可以取消混淆并尝试重现这个问题,这是我的观点,希望它对你有帮助。