1、没给权限。注意这里的权限要是访问所有文件的权限,而不是媒体文件。(如果你按照文档照做,那么这种的可能性最大)
2、工程许可和地图数据的存放位置不对,尤其是工程许可。
3、gradle版本过高?我暂时没有遇到过这个问题,但论坛里有写这个原因。
第一二个问题的解答详情参考我的上一篇文章SuperMap iMobile+Android studio开发入门(二)——超图示例代码运行_那咋办嘛_的博客-CSDN博客
里面都有提到要注意这两点问题,并给出了相应解决方法。
------------------------------------下面说一下为什么我要用sdk28。---------------------------------------------
首先一个小科普:
Android 6 SDK23
之前访问文件列表无需进行权限申请,或者只需在AndroidManifest.xml中添加相应权限即可进行
从23之后如果访问文件列表需要在Activity中动态申请访问权限。
Android 10 SDK 29
Android 10增加了文件分区的功能,文件的访问特别是根目录下的访问受限,Android10不再允许直接读取文件根目录,即使动态申请也无效。
但为了过度,可以使用临时的方案,即在application节点下增加android:requestLegacyExternalStorage="true"可关闭文件分区功能,但可能后期被取消。
Android 11 SDK 30
强制开启文件分区功能,即使加上了10上的关闭标识也会忽略掉。此时如果再想要访问文件目录,如文件管理器等,需要申请11新增的权限android.permission.MANAGE_EXTERNAL_STORAGE。
但很遗憾,我在用sdk32时,新增android.permission.MANAGE_EXTERNAL_STORAGE权限后仍然弹窗提示的时访问媒体文件,所以我最后不得不选择退回sdk28,卡在了一个不需要文件分区的版本。
目前这个问题还尚未解决,有幸解决再继续更新。