从2018.1.9f2 升级保本后,使用AVPro插件运行报错
报错如下:Failed to connect to localhost
com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to https://localhost:10383/AceOnline.mp4
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:194)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:147)
at com.google.android.exoplayer2.source.ExtractorMediaPeriod$ExtractingLoadable.load(ExtractorMediaPeriod.java:844)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:320)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:10383
查资料:
localhost与127.0.0.1的区别:
localhost的意思是本地服务器,127.0.0.1是本机地址,他们的关系是通过操作系统中的hosts文件,将localhost解析为127.0.0.1。
在实际工作中,localhost是不经过网卡传输的,所以,它不受网络防火墙和网卡相关的种种限制;而127.0.0.1则是要经过网卡传输数据的,是必须依赖网卡的。这一点是它的最大的区别。
一般设置程序的本地应用时,本地服务用localhost是最好的,它不会解析成IP,也不会占用网卡、网络资源。有时候用localhost可以,但用127.0.0.1却不行的情况就在于此。
原因:
Google规定android P以上 禁止App使用未加密的连接,这里出现这种异常应该是播放了http链接
从网上试了很多解决方案,并没有解决
最后按照如下修改成功解决
1把http://localhost:10383 改成http://127.0.0.1:10383
2修改AndroidManifest.xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>