Java SplashScreen后Android显示主要活动和谷歌地图
我的应用程序一直在崩溃,我真的不知道为什么! 我有两个活动:SplashScreen.java和MainActivity.java 还有两种布局:用于MapView的activity_main.xml和用于SplashScreen的activity_splash_screen.xml 发生的情况如下:我运行应用程序->SplashScreen加载和显示,但应用程序崩溃 也许你们当中有人可以帮我,或者知道任何可以帮助我的教程。如果你需要更多的信息,请告诉我 这是我的主要活动:Java SplashScreen后Android显示主要活动和谷歌地图,java,android,android-studio,Java,Android,Android Studio,我的应用程序一直在崩溃,我真的不知道为什么! 我有两个活动:SplashScreen.java和MainActivity.java 还有两种布局:用于MapView的activity_main.xml和用于SplashScreen的activity_splash_screen.xml 发生的情况如下:我运行应用程序->SplashScreen加载和显示,但应用程序崩溃 也许你们当中有人可以帮我,或者知道任何可以帮助我的教程。如果你需要更多的信息,请告诉我 这是我的主要活动: packag
package me.resq.resqme;
import android.app.Activity;
import android.os.Bundle;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends Activity {
// Constant for defining latitude and longitude
static final LatLng DerekPos = new LatLng(40 , -79);
// GoogleMap class
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// verify we can interact with the Google Map
try {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().
findFragmentById(R.id.map)).getMap();
}
// Show a satellite map with roads
/* MAP_TYPE_NORMAL: Basic map with roads.
MAP_TYPE_SATELLITE: Satellite view with roads.
MAP_TYPE_TERRAIN: Terrain view without roads.
*/
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
// Place dot on current location
googleMap.setMyLocationEnabled(true);
// Turns traffic layer on
googleMap.setTrafficEnabled(true);
// Enables indoor maps
googleMap.setIndoorEnabled(true);
// Turns on 3D buildings
googleMap.setBuildingsEnabled(true);
// Show Zoom buttons
googleMap.getUiSettings().setZoomControlsEnabled(true);
// Create a marker in the map at a given position with a title
Marker marker = googleMap.addMarker(new MarkerOptions().
position(DerekPos).title("Sie sind hier!"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
package me.resq.resqme;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {
private static int SPLASH_SCREEN_DELAY = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Executed after timer is finished (Opens MainActivity)
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
startActivity(intent);
// Kills this Activity
finish();
}
}, SPLASH_SCREEN_DELAY);
}
}
这是我的SplashScreen:
package me.resq.resqme;
import android.app.Activity;
import android.os.Bundle;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends Activity {
// Constant for defining latitude and longitude
static final LatLng DerekPos = new LatLng(40 , -79);
// GoogleMap class
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// verify we can interact with the Google Map
try {
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().
findFragmentById(R.id.map)).getMap();
}
// Show a satellite map with roads
/* MAP_TYPE_NORMAL: Basic map with roads.
MAP_TYPE_SATELLITE: Satellite view with roads.
MAP_TYPE_TERRAIN: Terrain view without roads.
*/
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
// Place dot on current location
googleMap.setMyLocationEnabled(true);
// Turns traffic layer on
googleMap.setTrafficEnabled(true);
// Enables indoor maps
googleMap.setIndoorEnabled(true);
// Turns on 3D buildings
googleMap.setBuildingsEnabled(true);
// Show Zoom buttons
googleMap.getUiSettings().setZoomControlsEnabled(true);
// Create a marker in the map at a given position with a title
Marker marker = googleMap.addMarker(new MarkerOptions().
position(DerekPos).title("Sie sind hier!"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
package me.resq.resqme;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
public class SplashScreen extends Activity {
private static int SPLASH_SCREEN_DELAY = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// Executed after timer is finished (Opens MainActivity)
Intent intent = new Intent(SplashScreen.this, MainActivity.class);
startActivity(intent);
// Kills this Activity
finish();
}
}, SPLASH_SCREEN_DELAY);
}
}
在我的activity_main.xml中,我使用MapFragment显示地图:
<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_weight="0.7"
android:layout_above="@+id/button"
android:layout_alignParentTop="true" />
Logcat在崩溃后向我显示了这一点,但我不知道出了什么问题:
java.lang.RuntimeException:无法启动活动
ComponentInfo{me.resq.resqme/me.resq.resqme.MainActivity}:
android.view.InflateException:二进制XML文件行#10:错误
膨胀类片段
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
在android.app.ActivityThread.access$900(ActivityThread.java:169)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5476)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
在dalvik.system.NativeStart.main(本机方法)
原因:android.view.InflateException:二进制XML文件行#10:膨胀类片段时出错
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
在android.view.LayoutInflater.inflate(LayoutInflater.java:498)
在android.view.LayoutInflater.inflate(LayoutInflater.java:398)
在android.view.LayoutInflater.充气(LayoutInflater.java:354)
位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366)
位于android.app.Activity.setContentView(Activity.java:2031)
at me.resq.resqme.MainActivity.onCreate(MainActivity.java:22)
位于android.app.Activity.performCreate(Activity.java:5451)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
在android.app.ActivityThread.access$900(ActivityThread.java:169)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5476)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.RuntimeException:未找到API密钥。检查元素中的
AndroidManifest.xml
位于com.google.maps.api.android.lib6.c.ad.a(未知来源)
位于com.google.maps.api.android.lib6.a.e.a(未知来源)
位于com.google.android.gms.maps.internal.CreatorImpl.b(未知来源)
位于com.google.android.gms.maps.internal.CreatorImpl.b(未知来源)
位于com.google.android.gms.maps.internal.h.onTransact(源文件:62)
位于android.os.Binder.transact(Binder.java:361)
位于com.google.android.gms.maps.internal.ah.b(源文件:179)
位于com.google.android.gms.maps.internal.CreatorImpl.b(源文件:100)
位于com.google.android.gms.maps.internal.ag.onTransact(源文件:62)
位于android.os.Binder.transact(Binder.java:361)
在com.google.android.gms.maps.internal.zzc$zza$zza.zzt(未知来源)
位于com.google.android.gms.maps.MapFragment$zzb.zzxL(未知来源)
在com.google.android.gms.maps.MapFragment$zzb.zza(未知来源)
位于com.google.android.gms.dynamic.zza.zza(未知来源)
位于com.google.android.gms.dynamic.zza.onInflate(未知来源)
位于com.google.android.gms.maps.MapFragment.onInflate(未知来源)
位于android.app.Activity.onCreateView(Activity.java:4996)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
在android.view.LayoutInflater.inflate(LayoutInflater.java:498)
在android.view.LayoutInflater.inflate(LayoutInflater.java:398)
在android.view.LayoutInflater.充气(LayoutInflater.java:354)
位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366)
在android.app.Activity.se