gpt4 book ai didi

android - 在 org.jivesoftware.smack.SmackAndroid$1.onReceive 接收广播 Intent 时出错

转载 作者:行者123 更新时间:2023-11-30 00:23:57 25 4
gpt4 key购买 nike

我的asmack库有bug,请告诉我正确的asmack库版本和下载地址,或者告诉我其他解决方法。非常感谢!

App偶尔出现闪退。详情见代码和图片说明。 (Lookup.refreshDefault) 与网络操作相关,主线程无法进行网络操作,onReceive方法应该是开启一个新线程,但是我找不到asmack库源码,代码无法修改,我只有类文件。请有经验的开发人员告诉我如何解决这个问题。

android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1273)
at java.net.InetAddress.lookupHostByName(InetAddress.java:431)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252)
at java.net.InetAddress.getByName(InetAddress.java:305)
at org.xbill.DNS.SimpleResolver.<init>(SimpleResolver.java:56)
at org.xbill.DNS.SimpleResolver.<init>(SimpleResolver.java:68)
at org.xbill.DNS.ExtendedResolver.<init>(ExtendedResolver.java:266)
at org.xbill.DNS.Lookup.refreshDefault(Lookup.java:86)
at org.jivesoftware.smack.SmackAndroid$1.onReceive(SmackAndroid.java:26)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:879)

Crash log screenshot

Error code location

最佳答案

当您尝试在 UI 或主线程上访问互联网时发生此 NetworkOnMainThreadException。

要在 Android 应用程序中访问互联网,您需要创建一个 AsyncTask 或服务。

在您的 Activity 中创建一个 AsyncTask。

class Refresh extends AsyncTask<Void, Void, Void> {

protected Void doInBackground(String... params) {
Lockup.refreshDefault();
}
}

并将 Lockup.refreshDefault(); 这一行替换为 new Refresh().execute();

希望对您有所帮助。

关于android - 在 org.jivesoftware.smack.SmackAndroid$1.onReceive 接收广播 Intent 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45747353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com