为什么我在地图应用中获得白色屏幕
我是新来的,也是编程方面的新手。 我正在制作地图,我遵循了很多教程,他们都很simillar,但我不知道为什么我的应用程序无法正常工作。该应用程序不会崩溃,但是当我打开地图时出现应用程序标题和地图应显示的白色屏幕。你知道为什么会发生这种情况吗?为什么我在地图应用中获得白色屏幕
这里是我的应用清单,活动:main.xml和mainactivity.java,也许这里是我找不到的错误。
此外,如果帮助logcat的说我:错误打开跟踪文件:没有这样的文件或目录(2)
APP清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tdr.mapa1"
android:versionCode="1"
android:versionName="1.0" >
<permission
android:name="com.tdr.mapa1.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="permission_name"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.tdr.mapa1.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<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"/>
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="com.google.android.maps"
android:required="false"/>
<activity
android:name="com.tdr.mapa1.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>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</manifest>
主要活动
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
</RelativeLayout>
MAINACTIVITY.JAVA
package com.tdr.mapa1;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
希望你能帮助我。
首先你的错误:
Error opening trace file: No such file or directory (2)
并不意味着什么,你应该节点不搭理它。
其次,无论是元数据标记应该是应用范围内,像这样:
...
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="<API_KEY>"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
最后,你实际上并没有建立在你的活动布局文件中的任何地图对象,你有没有一个空的RelativeLayout
,因此空的白色屏幕。你需要的是在那里添加一个MapFragment
或者根据你的目标API添加SupportMapFramgnet
。 (在你的情况下,将MapFragment
)
像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
您可以从这篇博客文章中,我就这个话题写了获得更详细的信息:
非常感谢! – user3175089
欢迎你,@ user3175089。很高兴这对你有帮助:) –
见在这里,只需使用清单文件中的密钥更改API密钥并按照以下步骤操作: 和确保生成带有Android名单中提到的包名称的API密钥文件和您的google_play_services_lib项目应该只出现在项目的工作空间中。
清单文件:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.geeklabs.map.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="replace with your API key"/>
</application>
</manifest>
MainActivity.java:
package com.geeklabs.map;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
activity_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"
android:name="com.google.android.gms.maps.MapFragment"/>
并确保下列步骤完成的正确与否:
步骤: *,以确保设备具有谷歌Play服务的APK *安装谷歌Play业务转。超过2
- 在https://code.google.com/apis/console/
- 现在创建的项目,使 “谷歌地图Android的API V2”
- 在项目注册SHA1的(,需要写SHA1 ; your.app.package.name)在API控制台并获取API KEY
- 复制目录ANDROID_SDK_DIR/extras/google/google_play_services/li bproject /谷歌播放,services_lib到项目的根
- 到下一行添加到YOUR_PROJECT/project.properties
android.library.reference.1=google-play-services_lib
- 下一行添加到YOUR_PROJECT/proguard的项目.TXT
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
好了,现在你准备使用谷歌地图API的V2为Android创建自己的谷歌地图应用程序。
如果您使用min SDK = 8创建应用程序,请使用android支持库v4 + SupportMapFragment而不是MapFragment。
得到这个后让我知道。
你在使用模拟器吗? – user2340612
你必须在你的RelativeLayout中有一些视图,在你的情况下,我想MapView – Android
@ user2340612不,我直接在手机上测试它。 – user3175089