当使用循环视图和Picasso库从声音云中获取图像时,我得到了这个。问题是应用程序有时会冻结几秒钟。然后,我得到一个跳帧的消息,并在主线程上做了太多工作。我正在使用改造来执行Http连接。
I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
KnoxVpnUidStorageknoxVpnSupported API value returned is false
I/Choreographer: Skipped 102 frames! The application may be doing too much work on its main thread.
答案 0 :(得分:10)
App冻结的原因是因为错误"应用程序可能在其主线程上做了太多工作"。出现此错误的原因可能是您尝试下载超出应用程序内存的更大尺寸的图像。使用大尺寸图像或资源文件也会导致此错误。 " isSBSettingEnabled false"可能是因为使用HttpUrlConnection,这主要发生在使用三星设备时。尝试使用模拟器。
答案 1 :(得分:3)
我可能来不及了,但是可以帮助别人。 我遇到过两种情况。第一种情况是我尝试下载较大的内容并同时进行下载,但我不确定这是否有问题,但是我更改了下载机制并使用了okhttp。 第二次是的,它也在下载中,但是这次是我使用的错误URL: http://example.com/file下载download.pdf(请看这里是空间问题)。唯一的办法就是格式化URL。
答案 2 :(得分:1)
将compile sdk版本更改为27,我的应用程序也遇到相同的问题,只需将compilesdk版本替换为27,
希望有帮助!
答案 3 :(得分:1)
您可以尝试将此属性添加到您在 AndroidManifest.xml 中的部分
android:usesCleartextTraffic="true"
这可以解决我的应用程序上的问题。
答案 4 :(得分:0)
我尝试仅更改目标,甚至不更改compiledsdkVersion,它奏效了! :
targetSdkVersion 27
编辑:
但是,在Google上播放时,您的targetSdk版本不得低于compedSdk
答案 5 :(得分:-1)
您应该增加请求超时时间,方法如下:
1)子类化Downloader
类
2)使用超时预先配置OkHttpClient
并将其传递给Picasso
答案 6 :(得分:-4)
将此添加到AndroidMainfest中,然后尝试
<uses-permission android:name="android.permission.INTERNET"></uses-permission>