1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 关于Arcgis runtime sdk for android加载本地.tpk报错Failed to open file. M

关于Arcgis runtime sdk for android加载本地.tpk报错Failed to open file. M

时间:2019-12-08 04:43:59

相关推荐

关于Arcgis runtime sdk for android加载本地.tpk报错Failed to open file. M

首先,你应当确保tpk数据读取正确。读取方式常用的很多,我写一种,这个不是我要说的重点。

String path="/mnt/sdcard/目录/数据.tpk"

其次,确保目录正确的情况下,依然报错。这是主要说的问题。与AndroidStudio的编译的SDK版本有关系。在android SDK 23以上,对于类似于存取权限的危险权限申请方式有所改动。SDK 23以前,只需要在Manifest.XML文件中增加权限即可,在SDK 23以后,不仅要在上面文件中添加相应的权限,还需要在JAVA代码中申请权限。

JAVA代码如下:

public class MainActivity extends AppCompatActivity {private MapView mapView;private ArcGISLocalTiledLayer arcGISLocalTiledLayer;//在API23+以上,不仅要在AndroidManifest.xml里面添加权限 还要在JAVA代码中请求权限:// Storage Permissionsprivate static final int REQUEST_EXTERNAL_STORAGE = 1;private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mapView=(MapView) findViewById(R.id.mMapView);int permission = ActivityCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE);if (permission != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE);}arcGISLocalTiledLayer = new ArcGISLocalTiledLayer("/mnt/sdcard/hz.tpk");mapView.addLayer(arcGISLocalTiledLayer);}}

然后再调试,即可解决此问题。(这个问题困扰很久才解决,在此记录一下。)

.12.22

关于Arcgis runtime sdk for android加载本地.tpk报错Failed to open file. May not be a valid tile package的解决方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。