本文已参与「新人创作礼」活动,一起开启掘金创作之路。
解决第一行代码第二版8.4不能正常播放音乐的问题
首先保证代码没有拼写错误,该有的权限都申请了,然后就是初始化MediPlayer的时候,
可以发现getExternalStorageDirectory已经弃用了,但是不影响代码的正常运行。我们加了一个Log语句打印打开文件对象的路径,运行程序看看Android Monitor的内容,如图所示:
看不清的话下面是复制的内容:
11-02 17:38:05.639 22754-22754/com.example.asus.playaudiotest D/MainActivity: initMediaPlayer:/storage/emulated/0/music.mp3
11-02 17:38:05.734 22754-22754/com.example.asus.playaudiotest D/WindowManager: Add to mViews: DecorView@1f33e8d[MainActivity],pkg= com.example.asus.playaudiotest
11-02 17:38:05.780 22754-22754/com.example.asus.playaudiotest V/OplusZoomWindowDecorViewHelper: setLastReportedMergedConfiguration mZoomDisplayHeight: 2400 getDecorView.DecorView@1f33e8d[MainActivity]
显然我们只要保证手机的/storage/emulated/0/music.mp3有这个文件就ok。
于是再次运行程序就可以播放音乐了。
第一行代码第二版解决PULL解析XMl数据无结果的问题
一、报错类型
在手机端运行第一行代码第二版的用Pull解析方式解析XML文件时没有现象,在保证没有拼写错误和get_data.xml能够正常打开的前提下,可能还会报如下错误:
该错误时打开as的Android Monitor,并调成Debug下观察到的。错误类型:
W/System.err: java.net.SocketTimeoutException: failed to connect to /10.112.250.197 (port 80) from /10.24.203.9 (port 39778) after 10000ms
二、问题解决
第一步:如果你是android9.0以上的版本,注意要加入在res下面新建一个名字为xml的Directory,然后再新建一个network_config.xml文件,文件结构和内容分别为:
上图中代码为:
<?xml version = "1.0" encoding = "utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted = "true">
<trust-anchors>
<certificates src = "system"/>
</trust-anchors>
</base-config>
</network-security-config>
然后AndroidManifest.xml中注册:
第二步:把电脑防火墙关了。
第三步:把手机端WIFI打开,一定要联网,用流量都不行。
三、运行结果
在配置结束后,Android Monitor端的运行结果:
手机端的运行结果:
\