谷歌Android地图应用崩溃 [英] Android Google Maps App Crashing

查看:156
本文介绍了谷歌Android地图应用崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用谷歌地图的应用程序。 previously,它做工精细,但昨晚我在SDK管理器更新了一些东西,这样做使我的地图活动崩溃我的应用程序。在修复它多次尝试后,我更新到日食的最新版本,重新下载谷歌的发挥服务,并生成一个新的API密钥。然而,我的Andr​​oid设备上运行时,我的应用程序仍然会崩溃,我想不通为什么。请请帮助。下面是我的清单文件(我与我的新的API密钥更新),与包含错误的日志一起。任何帮助都将大大AP preciated。谢谢。
清单:

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    包=com.example.workoutprofile
    安卓版code =1
    机器人:=的versionName1.0>    <用途-SDK
        安卓的minSdkVersion =5
        机器人:targetSdkVersion =17/>    <许可
        机器人:名字=com.example.workoutprofile.permission.MAPS_RECEIVE
        安卓的ProtectionLevel =签名/>
    <使用许可权的android:NAME =com.example.workoutprofile.permission.MAPS_RECEIVE/>    <使用许可权的android:NAME =android.permission.INTERNET对/>
    <使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>
    <使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E/>
    <使用许可权的android:NAME =com.google.android.providers.gsf.permission.READ_GSERVICES/>
    <使用许可权的android:NAME =android.permission.ACCESS_COARSE_LOCATION/>
    <使用许可权的android:NAME =android.permission.ACCESS_FINE_LOCATION/>    <使用许可权的android:NAME =android.permission.BLUETOOTH/>
    <使用许可权的android:NAME =android.permission.BLUETOOTH_ADMIN/>    <用途特征
        机器人:glEsVersion =0x00020000
        机器人:要求=真/>    <应用
        机器人:图标=@绘制/ ic_launcher
        机器人:标签=@字符串/ APP_NAME
        机器人:主题=@风格/ AppTheme>        &所述;元数据
            机器人:名字=com.google.android.maps.v2.API_KEY
            机器人:值=AIzaSyBp5Var-gdHHN2d6ENeHMW2kPSlGjLywFU/>        <活动
            机器人:名字=com.example.workoutprofile.MainActivity
            机器人:标签=@字符串/ APP_NAME>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;        <活动机器人:名字=地图>< /活性GT;
        <活动机器人:名字=记录>< /活性GT;
        <活动机器人:名字=设置>< /活性GT;
        <活动机器人:名字=蓝牙>< /活性GT;
        <活动机器人:名字=图表>< /活性GT;
        <活动机器人:名字=历史>< /活性GT;
        <活动机器人:名字=org.achartengine.GraphicalActivity>< /活性GT;
        <活动机器人:名字=测试>< /活性GT;
        <活动机器人:名字=MapTest>< /活性GT;
    < /用途>
< /清单>

LogCat中:

  20 11-06:35:57.708:D / dalvikvm(12454):DexOpt:找不到场Landroid /内容/ RES /配置; .smallestScreenWidthDp
11-06 20:35:57.708:W / dalvikvm(12454):VFY:无法解析实例字段32
11-06 20:35:57.708:D / dalvikvm(12454):VFY:在更换运code 0×52×0012
11-06 20:35:57.708:D / dalvikvm(12454):VFY:死code 0x0014-0018在LCOM /谷歌/安卓/ GMS /普通/ GooglePlayServicesUtil; .B(Landroid /内容/ RES /资源; )z
11-06 20:35:57.715:D / AndroidRuntime(12454):关闭VM
11-06 20:35:57.715:W / dalvikvm(12454):主题ID = 1:螺纹未捕获的异常退出(组= 0x4001e560)
11-06 20:35:57.723:E / AndroidRuntime(12454):致命异常:主要
11-06 20:35:57.723:E / AndroidRuntime(12454):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.workoutprofile / com.example.workoutprofile.Map}:android.view.InflateException:二进制XML文件行#19:错误充气类片段
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1702)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1722)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread.access $ 1500(ActivityThread.java:124)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:974)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.os.Handler.dispatchMessage(Handler.java:99)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.os.Looper.loop(Looper.java:130)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread.main(ActivityThread.java:3821)
11-06 20:35:57.723:E / AndroidRuntime(12454):在java.lang.reflect.Method.invokeNative(本机方法)
11-06 20:35:57.723:E / AndroidRuntime(12454):在java.lang.reflect.Method.invoke(Method.java:507)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-06 20:35:57.723:E / AndroidRuntime(12454):在dalvik.system.NativeStart.main(本机方法)
11-06 20:35:57.723:E / AndroidRuntime(12454):android.view.InflateException:二进制XML文件行#19:错误充气类片段产生的原因
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.inflate(LayoutInflater.java:408)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.inflate(LayoutInflater.java:320)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.inflate(LayoutInflater.java:276)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:253)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.Activity.setContentView(Activity.java:1716)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.example.workoutprofile.Map.onCreate(Map.java:64)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1666)
11-06 20:35:57.723:E / AndroidRuntime(12454):... 11个
11-06 20:35:57.723:E / AndroidRuntime(12454):java.lang.IllegalStateException:在应用的Andr​​oidManifest.xml中的元数据标签没有正确的价值所致。预计4030500但发现0您必须在&lt中的以下声明;用途>元素:其中,元数据机器人:名字=com.google.android.gms.version机器人:值=@整数/ GOOGLE_PLAY_SERVICES_VERSION/>
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.common.GooglePlayServicesUtil.n(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.internal.q.v(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.internal.q.u(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.MapsInitializer.initialize(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.SupportMapFragment $ b.cE(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.SupportMapFragment $ b.a(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.dynamic.a.a(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.dynamic.a.onInflate(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在com.google.android.gms.maps.SupportMapFragment.onInflate(来源不明)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
11-06 20:35:57.723:E / AndroidRuntime(12454):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
11-06 20:35:57.723:E / AndroidRuntime(12454):20 ...更多

地图布局

 <?XML版本=1.0编码=UTF-8&GT?;
<的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:paddingBottom会=@扪/ activity_vertical_margin
    机器人:paddingLeft =@扪/ activity_horizo​​ntal_margin
    机器人:paddingRight =@扪/ activity_horizo​​ntal_margin
    机器人:paddingTop =@扪/ activity_vertical_margin>    <的TextView
        机器人:ID =@ + ID / mapHeader
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentTop =真
        机器人:layout_centerHorizo​​ntal =真
        机器人:文字=地图
        机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?    <片段
        机器人:ID =@ + ID /图
        机器人:名字=com.google.android.gms.maps.SupportMapFragment
        机器人:layout_width =match_parent
        机器人:layout_height =480dp
        机器人:layout_alignParentBottom =真
        机器人:layout_centerHorizo​​ntal =真/>    <按钮
        机器人:ID =@ + ID / buttonRouteStart
        机器人:layout_width =125dp
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignBaseline =@ + ID / buttonScreenshot
        机器人:layout_alignBottom =@ + ID / buttonScreenshot
        机器人:layout_alignRight =@ + ID /图
        机器人:文字=路由/>    <按钮
        机器人:ID =@ + ID / buttonScreenshot
        机器人:layout_width =125dp
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_below =@ + ID / mapHeader
        机器人:layout_alignLeft =@ + ID /图
        机器人:文本=保存/>< / RelativeLayout的>


解决方案

这是您提供的API密钥是错误的。关键不包含 - 。转到云控制台。在平台选择机器人。 直接从Android的API的选择访问提供包名和SHA1 fingerprint.Copy粘贴生成API密钥。另外,还要根据API和身份验证确保谷歌地图Android版API V2是打开的。

编辑:谷歌已经更新了库,因此这个问题。你的问题的解决方案,可以发现这里

I have an application that uses google maps. Previously, it was working fine, but last night I was updating some things in the sdk manager and doing so caused my map activity to crash my app. After multiple tries at fixing it, I updated to the newest version of eclipse, redownloaded the google play services, and generated a new API key. However, my app is still crashing when running it on my android device and I can't figure out why. Please please help. Below is my manifest file (which I updated with my new API key), along with the log that contains the errors. Any help at all would much appreciated. Thanks. Manifest:

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

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

    <permission
        android:name="com.example.workoutprofile.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.workoutprofile.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"/>

    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

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

    <application
        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="AIzaSyBp5Var-gdHHN2d6ENeHMW2kPSlGjLywFU"/>

        <activity
            android:name="com.example.workoutprofile.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>

        <activity android:name="Map"></activity>
        <activity android:name="Record"></activity>
        <activity android:name="Setup"></activity>
        <activity android:name="Bluetooth"></activity>
        <activity android:name="Chart"></activity>
        <activity android:name="History"></activity>
        <activity android:name="org.achartengine.GraphicalActivity"></activity>
        <activity android:name="Test"></activity>
        <activity android:name="MapTest"></activity>
    </application>


</manifest>

LogCat:

11-06 20:35:57.708: D/dalvikvm(12454): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp
11-06 20:35:57.708: W/dalvikvm(12454): VFY: unable to resolve instance field 32
11-06 20:35:57.708: D/dalvikvm(12454): VFY: replacing opcode 0x52 at 0x0012
11-06 20:35:57.708: D/dalvikvm(12454): VFY: dead code 0x0014-0018 in Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z
11-06 20:35:57.715: D/AndroidRuntime(12454): Shutting down VM
11-06 20:35:57.715: W/dalvikvm(12454): threadid=1: thread exiting with uncaught exception (group=0x4001e560)
11-06 20:35:57.723: E/AndroidRuntime(12454): FATAL EXCEPTION: main
11-06 20:35:57.723: E/AndroidRuntime(12454): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.workoutprofile/com.example.workoutprofile.Map}: android.view.InflateException: Binary XML file line #19: Error inflating class fragment
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1702)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1722)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread.access$1500(ActivityThread.java:124)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:974)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.os.Looper.loop(Looper.java:130)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread.main(ActivityThread.java:3821)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at java.lang.reflect.Method.invokeNative(Native Method)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at java.lang.reflect.Method.invoke(Method.java:507)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at dalvik.system.NativeStart.main(Native Method)
11-06 20:35:57.723: E/AndroidRuntime(12454): Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class fragment
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:253)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.Activity.setContentView(Activity.java:1716)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.example.workoutprofile.Map.onCreate(Map.java:64)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1666)
11-06 20:35:57.723: E/AndroidRuntime(12454):    ... 11 more
11-06 20:35:57.723: E/AndroidRuntime(12454): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 4030500 but found 0.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.internal.q.v(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.internal.q.u(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.SupportMapFragment$b.cE(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.dynamic.a.a(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.dynamic.a.onInflate(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
11-06 20:35:57.723: E/AndroidRuntime(12454):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
11-06 20:35:57.723: E/AndroidRuntime(12454):    ... 20 more

Map Layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <TextView
        android:id="@+id/mapHeader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="MAP"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="480dp"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" />

    <Button
        android:id="@+id/buttonRouteStart"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/buttonScreenshot"
        android:layout_alignBottom="@+id/buttonScreenshot"
        android:layout_alignRight="@+id/map"
        android:text="Route" />

    <Button
        android:id="@+id/buttonScreenshot"
        android:layout_width="125dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/mapHeader"
        android:layout_alignLeft="@+id/map"
        android:text="Save" />

</RelativeLayout>

解决方案

The api key that you have provided is wrong. The key doesn't contain "-". Go to cloud console . Select android in Platform. Select Accessing "APIs directly from Android" provide package name and SHA1 fingerprint.Copy paste the generated API Key. Also make sure "Google Maps Android API v2" under API and auth is turned on.

Edit : Google have updated the library hence the problem. The solution to your problem can be found here

这篇关于谷歌Android地图应用崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆