谷歌地图Android API v2 - 简单的地图应用程序崩溃

时间:2013-03-18 22:16:53

标签: android google-maps google-maps-api-2

我是android dev的新手:)

我正在尝试创建一个简单的应用:带有地图的活动。 我将HTC 1x连接到计算机,当我尝试运行应用程序时(通过intellij IDEA),它崩溃了。

我搜索了网络(和stackoverflow)的线索,找不到任何线索。例如:
- Google Maps v2 - Error
- google map - runtimeexception - error inflating class fragment

你能告诉我为什么吗?

谢谢,

欧麦



技术细节:

HTC 1x runs android 4.1.1
Project External libraries:
 - Android 4.0 Google API's
 - Android-Support-V4.jar
 - google-play-services.jar



主Activity.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent" >
<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.SupportMapFragment"/>
</LinearLayout>



主要Activity.Java

package com.example.mapTest;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainActivity);
    }
}



的manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.mapTest"
          android:versionCode="1"
          android:versionName="1.0">

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

    <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>

    <permission
            android:name="com.example.mapTest.permission.MAPS_RECEIVE"
            android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.mapTest.permission.MAPS_RECEIVE"/>

    <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:label="@string/app_name" android:icon="@drawable/ic_launcher">

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

        <activity android:name="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>
    </application>
</manifest>



例外:

03-19 00:09:30.325: ERROR/NotificationService(434): Ignoring notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=nullnull defaults=0x0 flags=0x62 kind=[null])
03-19 00:09:41.430: ERROR/MediaScannerService(13421): Exception scanning file
        android.os.DeadObjectException
        at android.os.BinderProxy.transact(Native Method)
        at android.media.IMediaScannerListener$Stub$Proxy.scanCompleted(IMediaScannerListener.java:100)
        at com.android.providers.media.MediaScannerService$ServiceHandler.handleMessage(MediaScannerService.java:1007)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at com.android.providers.media.MediaScannerService.run(MediaScannerService.java:713)
        at java.lang.Thread.run(Thread.java:864)
03-19 00:09:48.655: ERROR/ExternalAccountType(31657): Unsupported attribute readOnly
03-19 00:09:48.900: ERROR/ExternalAccountType(31657): Unsupported attribute readOnly
03-19 00:09:51.965: ERROR/EmbeddedLogger(434): App crashed! Process: com.example.mapTest
03-19 00:09:51.965: ERROR/EmbeddedLogger(434): App crashed! Package: com.example.mapTest v1 (1.0)
03-19 00:09:51.965: ERROR/EmbeddedLogger(434): Application Label: mapTest
03-19 00:09:51.965: ERROR/AndroidRuntime(22403): FATAL EXCEPTION: main
        java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
        at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
        at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:365)
        at android.app.Activity.setContentView(Activity.java:1912)
        at com.example.mapTest.MainActivity.onCreate(MainActivity.java:13)
        at android.app.Activity.performCreate(Activity.java:5066)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
        at android.app.ActivityThread.access$600(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5485)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
        at dalvik.system.NativeStart.main(Native Method)
03-19 00:09:53.785: ERROR/MediaScannerService(13421): Exception scanning file
        android.os.DeadObjectException
        at android.os.BinderProxy.transact(Native Method)
        at android.media.IMediaScannerListener$Stub$Proxy.scanCompleted(IMediaScannerListener.java:100)
        at com.android.providers.media.MediaScannerService$ServiceHandler.handleMessage(MediaScannerService.java:1007)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at com.android.providers.media.MediaScannerService.run(MediaScannerService.java:713)
        at java.lang.Thread.run(Thread.java:864)
03-19 00:09:54.365: ERROR/NotificationService(434): Ignoring notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=nullnull defaults=0x0 flags=0x62 kind=[null])
03-19 00:10:03.075: ERROR/ExternalAccountType(31657): Unsupported attribute readOnly
03-19 00:10:03.380: ERROR/NotificationService(434): Ignoring notification with icon==0: Notification(pri=0 contentView=null vibrate=null sound=nullnull defaults=0x0 flags=0x62 kind=[null])
03-19 00:10:03.960: ERROR/ExternalAccountType(31657): Unsupported attribute readOnly
03-19 00:10:08.200: ERROR/MediaScannerService(13421): Exception scanning file
        android.os.DeadObjectException
        at android.os.BinderProxy.transact(Native Method)
        at android.media.IMediaScannerListener$Stub$Proxy.scanCompleted(IMediaScannerListener.java:100)
        at com.android.providers.media.MediaScannerService$ServiceHandler.handleMessage(MediaScannerService.java:1007)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at com.android.providers.media.MediaScannerService.run(MediaScannerService.java:713)
        at java.lang.Thread.run(Thread.java:864)
03-19 00:10:10.270: ERROR/AndroidRuntime(23231): FATAL EXCEPTION: main
        java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
        at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
        at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:365)
        at android.app.Activity.setContentView(Activity.java:1912)
        at com.example.mapTest.MainActivity.onCreate(MainActivity.java:13)
        at android.app.Activity.performCreate(Activity.java:5066)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
        at android.app.ActivityThread.access$600(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5485)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
        at dalvik.system.NativeStart.main(Native Method)
03-19 00:10:10.285: ERROR/EmbeddedLogger(434): App crashed! Process: com.example.mapTest
03-19 00:10:10.285: ERROR/EmbeddedLogger(434): App crashed! Package: com.example.mapTest v1 (1.0)
03-19 00:10:10.285: ERROR/EmbeddedLogger(434): Application Label: mapTest

1 个答案:

答案 0 :(得分:1)

您是否在项目中加入了Google Play服务库?没有它,关键资源就无法使用。有关更多详细信息,请参阅问题:java.lang.noclassdeffounderror: com.google.android.gms.R$styleable