Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MusicLibrary里面的缓存框架引起了崩溃,看看如何解决咯 #46

Closed
JeremyHwc opened this issue Jul 27, 2018 · 11 comments
Closed

Comments

@JeremyHwc
Copy link

1 java.lang.RuntimeException:Unable to bind to service com.lzx.musiclibrary.MusicService@671efb0 with Intent { cmp=com.meten.metenenglish/com.lzx.musiclibrary.MusicService (has extras) }: java.lang.IllegalStateException: Error starting local proxy server

2 android.app.ActivityThread.handleBindService(ActivityThread.java:2924)
3 ......
4 Caused by:
5 android.system.ErrnoException:socket failed: EACCES (Permission denied)
6 libcore.io.Posix.socket(Native Method)
7 libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282)
8 libcore.io.IoBridge.socket(IoBridge.java:604)
9 java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
10 java.net.PlainServerSocketImpl.create(PlainServerSocketImpl.java:38)
11 java.net.ServerSocket.(ServerSocket.java:104)
12 com.danikula.videocache.HttpProxyCacheServer.(HttpProxyCacheServer.java)
13 com.danikula.videocache.HttpProxyCacheServer.(HttpProxyCacheServer.java)
14 com.danikula.videocache.HttpProxyCacheServer$Builder.build(HttpProxyCacheServer.java)
15 com.lzx.musiclibrary.playback.player.ExoPlayback.(ExoPlayback.java)
16 com.lzx.musiclibrary.control.PlayControl.(PlayControl.java)
17 com.lzx.musiclibrary.control.PlayControl.(PlayControl.java)
18 com.lzx.musiclibrary.control.PlayControl$Builder.build(PlayControl.java)
19 com.lzx.musiclibrary.MusicService.onBind(MusicService.java)
20 android.app.ActivityThread.handleBindService(ActivityThread.java:2911)
21 android.app.ActivityThread.access$2000(ActivityThread.java:153)
22 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1439)
23 android.os.Handler.dispatchMessage(Handler.java:102)
24 android.os.Looper.loop(Looper.java:148)
25 android.app.ActivityThread.main(ActivityThread.java:5441)
26 java.lang.reflect.Method.invoke(Native Method)
27 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
28 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)

@EspoirX
Copy link
Owner

EspoirX commented Jul 27, 2018

是不是权限问题啊

@JeremyHwc
Copy link
Author

这里是看到有提示 Permission denied ,不过这里需要申请什么权限吗

@EspoirX
Copy link
Owner

EspoirX commented Jul 27, 2018

读写文件权限应该是要的

@JeremyHwc
Copy link
Author

感觉这里很奇怪,只是很少的几个出现这种崩溃,我在我8.0的手机上没出现,如果是权限,应该都会崩溃,
android.system.ErrnoException:socket failed: EACCES (Permission denied)

这个应该只与联网权限有关

@EspoirX
Copy link
Owner

EspoirX commented Jul 27, 2018

联网权限应该正常app都有的,不过这个缓存框架我还没深入去研究过,确实出问题了有点不知道怎么做的感觉,有空得看看它的实现才行。。

@JeremyHwc
Copy link
Author

不过我之前用这个缓存框架做视频播放器的缓存时,也遇到过这个问题,后面我直接去掉了这个缓存框架

@EspoirX
Copy link
Owner

EspoirX commented Jul 27, 2018

那后面你用什么框架,或者你自己实现了?

@JeremyHwc
Copy link
Author

暂时没有用缓存了 还没想到用什么来弄

@EspoirX
Copy link
Owner

EspoirX commented Jul 27, 2018

这就尴尬了

@JeremyHwc
Copy link
Author

线上报错信息是HttpProxyCacheServer在初始化的时候会发生崩溃,感觉目前快速解决是在MediaPlayCallback和ExoPlayCallback 中加上try catch处理
try {
mProxyCacheServer = builder.build();
} catch (Exception e) {
e.printStackTrace();
}
在下面用到mProxyCacheServer 的地方加上非空判断,发生崩溃的时候,mProxyCacheServer为null,就不用使用缓存

@EspoirX
Copy link
Owner

EspoirX commented Aug 6, 2018

可以一试

@EspoirX EspoirX closed this as completed Aug 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants