嘿嘿我无法将手机上的地图加载我收到错误无法打开文件阅读我已添加google play服务作为库项目;我还在我的项目中添加了google play服务jar
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapsdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="15" />
<permission
android:name="com.example.mapsdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapsdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.mapsdemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="API KEY"/>
</application>
</manifest>
我的main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>
我的MainActivity.java
package com.example.mapsdemo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
当我在拥有Android 4.0.4的Galaxy s3上运行时,log cat给出了一个错误:
记录猫 01-25 20:11:45.690:E /(23663):无法打开文件进行阅读 01-25 20:11:45.690:E /(23663):无法打开文件进行阅读
请帮忙解决这个问题
答案 0 :(得分:0)
天啊......你的“我的MainActivity.java”是错的。你没有写任何东西,所以你得到了失败。要显示Google地图,至少您的java代码必须包含以下代码,即基本和初始设置;
1. **修改您的“** my MainActivity.java ”,如下所示;
这显示了如何使用地图上的地图和标记创建简单活动。请注意我们如何处理用户设备上未安装/启用/更新Google Play服务APK的可能性。
public class MainActivity extends android.support.v4.app.FragmentActivity {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.basic_demo);
setUpMapIfNeeded();
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
setUpMap();
}
}
}
private void setUpMap() {
mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
}
}
2. **修改后,按键盘上的** ctrl + shft + alphabet“o”并保存,再次运行〜!。
注意:在运行之前,必须将构建目标设置为Android 4.0.3中的“Googel API”,而不是eclipse中的Android 4.0.3。请检查一下;项目&lt;属性&lt; Android&lt;在Android 4.0.3下选择“Googel API”,
答案 1 :(得分:0)
当您没有注册用于使用Google API控制台为Android应用程序签名的数字证书的SHA-1指纹时,此错误消息显然是三星Galaxy S3的副作用Android Maps API V2。
例如,我遇到了同样的错误:
Log cat 01-25 20:11:45.690: E/(23663): Can't open file for reading
...我换了一台新的笔记本电脑,忘记将该笔记本电脑上的新调试证书的SHA-1添加到Google API控制台。
要在Windows上为调试证书修复此问题,请打开命令提示符,然后:
cd .android
keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android -v
这将打印出一堆文本,您需要在SHA-1:
输出后复制文本。
然后,按照说明in the Android Maps API V2 documentation将您的SHA-1指纹后跟分号和应用包名称添加到Google API控制台。