Google Maps Android API v2 - simple map app crashes

荒凉一梦 提交于 2019-12-22 10:40:02

问题


I'm new to android dev :)

I'm trying to create a simple app: an activity with a map. I connected my HTC 1x to the computer and when I try to run the app (via intellij IDEA), it crashes.

I have searched for the net (and stackoverflow) for clues and couldn't find any. For example:
 - Google Maps v2 - Error
 - google map - runtimeexception - error inflating class fragment

Can you please tell me why??

Thanks,

Omer



Tech details:

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



Main 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>



Main 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>



The exception:

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:


Have you included the Google Play Services library in your project? Without it, critical resources are unavailable. See question: java.lang.noclassdeffounderror: com.google.android.gms.R$styleable for more detail.



来源:https://stackoverflow.com/questions/15487998/google-maps-android-api-v2-simple-map-app-crashes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!