Java SplashScreen后Android显示主要活动和谷歌地图

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

我的应用程序一直在崩溃,我真的不知道为什么! 我有两个活动:SplashScreen.java和MainActivity.java 还有两种布局:用于MapView的activity_main.xml和用于SplashScreen的activity_splash_screen.xml

发生的情况如下:我运行应用程序->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);
}
}
这是我的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