Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启动屏幕后加载地图时出错_Android_Google Maps_Android Layout_Splash Screen_Google Maps Api 2 - Fatal编程技术网

Android 启动屏幕后加载地图时出错

Android 启动屏幕后加载地图时出错,android,google-maps,android-layout,splash-screen,google-maps-api-2,Android,Google Maps,Android Layout,Splash Screen,Google Maps Api 2,我这里有个典型的问题。我尝试过成功加载Android地图,也尝试过成功加载启动屏幕 现在,当我尝试在启动屏幕后加载地图时,我得到以下异常 04-08 00:35:46.890: E/AndroidRuntime(19891): FATAL EXCEPTION: main 04-08 00:35:46.890: E/AndroidRuntime(19891): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 04

我这里有个典型的问题。我尝试过成功加载Android地图,也尝试过成功加载启动屏幕

现在,当我尝试在启动屏幕后加载地图时,我得到以下异常

04-08 00:35:46.890: E/AndroidRuntime(19891): FATAL EXCEPTION: main
04-08 00:35:46.890: E/AndroidRuntime(19891): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.Activity.onCreateView(Activity.java:4242)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.Activity.setContentView(Activity.java:1835)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.example.androidmapsv2.MainActivity.onCreate(MainActivity.java:53)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.Activity.performCreate(Activity.java:4465)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.os.Looper.loop(Looper.java:137)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at android.app.ActivityThread.main(ActivityThread.java:4424)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at java.lang.reflect.Method.invokeNative(Native Method)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at java.lang.reflect.Method.invoke(Method.java:511)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
04-08 00:35:46.890: E/AndroidRuntime(19891):    at dalvik.system.NativeStart.main(Native Method)
04-08 00:35:49.703: I/Process(19891): Sending signal. PID: 19891 SIG: 9
我遵循了嵌入地图和显示初始屏幕的所有基本步骤,因为我在尝试单独实现它们时成功了

我已经确保google play services jar和android-supportv4 jar都在libs文件夹中,并且被正确引用


MainActivity.java



SplashScreen.java
activity_main.xml


splashscreen.xml


AndroidManifest.xml

请看下面的结构


我还使用了最新的API密钥和其他基本的东西。

对我来说,google play services的引用似乎仍然存在问题

1.能否请您确认您的依赖项文件夹(
绿色
)中是否有选定的(
红色
)文件

2。请验证您的
项目中是否有此行。属性
文件位于项目文件夹的根目录中:

android.library.reference.1=../../android-sdk_r17-windows/extras/google/google_play_services/libproject/google-play-services_lib

或者类似的东西。

以前版本的goolge地图已经贬值。您需要使用新的Api v2进行开发

除此之外,您在Manifest.xml中还提供了两次密钥, 现在将MainActivity扩展到片段活动 替换

FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment = (MapFragment) myFragmentManager
        .findFragmentById(R.id.map);
myMap = myMapFragment.getMap();
由--

在activity_main.xml中替换
“com.google.android.gms.maps.MapFragment”

作者------
“com.google.android.gms.maps.SupportedMapFragment”


你可以走了。

是的。。我选择了与上面在“按软件包”屏幕截图中显示的相同的内容。是的,我在我的属性文件中引用了它。当我尝试不使用闪屏时,我的地图工作正常。但现在启动时启动启动屏幕加载,但由于上述异常而引发强制关闭错误。
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/locinfo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"/>

</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:background="@drawable/splash"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidmapsv2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" >
    </permission>

    <uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <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" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyAkfu2ZAgQfO6iQ_ldkOAaVyMOPDmq_Lg0" />

        <activity
            android:name="com.example.androidmapsv2.SplashScreen"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.example.androidmapsv2.MainActivity" >
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="My Key" />
    </application>

</manifest>
android.library.reference.1=../../android-sdk_r17-windows/extras/google/google_play_services/libproject/google-play-services_lib
FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment = (MapFragment) myFragmentManager
        .findFragmentById(R.id.map);
myMap = myMapFragment.getMap();
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();