首页 / 浏览问题 / 移动GIS / 问题详情
initialization出错
3EXP 2017年06月29日
Android 7.0,用最新版的iMobile 8C for Android 初始化报错

Calling by::className:com.supermap.data.Environment  MethodName:getMacAddress

 java.io.FileNotFoundException: /sys/class/net/eth0/address (No such file or directory)

 at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
 at java.io.FileInputStream.<init>(FileInputStream.java:99)
 at java.io.FileReader.<init>(FileReader.java:58)
  at com.supermap.data.Environment.loadFileAsString(Environment.java:650)
 at com.supermap.data.Environment.getMacAddress(Environment.java:639)
 at com.supermap.data.Environment.checkDevice(Environment.java:579)
 at com.supermap.data.Environment.initialization(Environment.java:523)
 at cn.seismic.exploration.activity.MainActivity.initEnvironment(MainActivity.java:312)
 at cn.seismic.exploration.activity.MainActivity.initMap(MainActivity.java:292)
 at cn.seismic.exploration.activity.MainActivity.onCreate(MainActivity.java:283)
  at android.app.Activity.performCreate(Activity.java:6910)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
  at android.app.ActivityThread.-wrap12(ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
  at android.os.Handler.dispatchMessage(Handler.java:105)
  at android.os.Looper.loop(Looper.java:156)
  at android.app.ActivityThread.main(ActivityThread.java:6531)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)

loadFileAsString这个方法报错,追溯到

return loadFileAsString("/sys/class/net/eth0/address").toUpperCase().substring(0, 17);

就正如报错找不到里面的文件,是读写权限的原因吗?动态获取了读写权限把证书写入设备的,再读取的证书啊,也就是其他权限的原因,但超图需要的权限都是加了的,都赋予了动态权限,不知道是哪个权限还是什么其他问题,求解答,急,谢谢!

1个回答

这个报错不是超图接口需要的权限,是放置的许可文件没有读取权限,虽然在AndroidManifest.xml中设置了文件的读写权限,但是有些7.0的设备还是无法获取到文件的路径,你可以在environment.setlicensepath(path)前判断path是否存在,是否获取到了,如果获取不到你可以参考在代码中再次设置文件的读取权限,前面有类似的问题,你可以initialzztion关键字查看。
2,042EXP 2017年06月29日
许可文件是能读取的,动态读写权限在之前就给了,这个只出现在7.0及以上。7.0以下是没问题的,6.0是可以初始化成功的,那就应该不是读写权限的问题了吧。前面的类似的问题解决方法没用。
百度看一下你这种设备怎么获取到文件的路径,7.0的不同的Android机型文件的读取权限设置也不一样。
06-30 01:49:53.146 7627-7627/cn.seismic.exploration D/MainActivity: LicenseStatus[
                                                                    Status = Valid License
                                                                    Type =
                                                                    Version = 100
                                                                    SartDate = 2017-06-29
                                                                    ExpireDate = 2017-09-29
                                                                    ]
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: status:LicenseStatus[
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: Status = Valid License
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: Type =
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: Version = 100
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: SartDate = 2017-06-29
06-30 01:49:53.153 7627-7627/cn.seismic.exploration I/System.out: ExpireDate = 2017-09-29
06-30 01:49:53.164 7627-7627/cn.seismic.exploration I/System.out: ],path:/storage/emulated/0/superMap/License/,version:ver_811_59873_8045

初始化后能获取到许可文件的信息,上面的log显示的。但它初始化还是报的原来的错误java.io.FileNotFoundException: /sys/class/net/eth0/address (No such file or directory),界面上什么也没显示,而在7.0以下不会报错,左下角会有超图的logo字样。搞不懂是怎么回
...