Android的谷歌+ API V2 [英] android + google API v2

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

问题描述

我创建使用真实的设备上的谷歌地图V2一个应用程序,但我得到的一个问题和应用部队密切如何解决这一问题后,我读了很多很多的解决方案没有人跟我合作
这是一些关于在片段

清单文件

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    包=com。示例
    安卓版code =1
    机器人:=的versionName1.0>    <用途-SDK
        安卓的minSdkVersion =12
        机器人:targetSdkVersion =17/>    <许可        机器人:名字=com.example.permission.MAPS_RECIEVE
        安卓的ProtectionLevel =签名/>     <使用许可权的android:NAME =com.example.permission.MAPS_RECIEVE/>
     <使用许可权的android:NAME =android.permission.INTERNET对/>
     <使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>
     <使用许可权的android:NAME =android.permission.WRITE_EXTERNAL_STORAG​​E/>
     <使用许可权的android:NAME =android.permission.ACCESS_COARSE_LOCATION/>
     <使用许可权的android:NAME =android.permission.ACCESS_FINE_LOCATION/>
     <用途特征
         机器人:glEsVersion =0x00020000
         机器人:要求=真/>    <应用
        机器人:allowBackup =真
        机器人:图标=@绘制/ ic_launcher
        机器人:标签=@字符串/ APP_NAME
        机器人:主题=@风格/ AppTheme>        &所述;元数据
            机器人:名字=com.google.android.maps.v2.API_KEY
            机器人:值=AIzaSyC6Sh22y4wF_tKlrE2MljwZ7Cd9-8V-NKS/>
        <活动
            机器人:名字=com.example.MainActivity
            机器人:标签=@字符串/ APP_NAME>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
    < /用途>< /清单>

布局文件

 <的RelativeLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人: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
    工具:上下文=MainActivity。>    <的TextView
        机器人:ID =@ + ID /头
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:文字=@字符串/参考hello world/>    <片段
        机器人:ID =@ + ID /图
        机器人:名字=com.google.android.gms.maps.MapFragment
        机器人:layout_below =@ + ID /头
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent
        />< / RelativeLayout的>

的java文件

 包com。示例;进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;公共类MainActivity延伸活动{    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
    }
    @覆盖
    公共布尔onCreateOptionsMenu(菜单菜单){
        //充气菜单;如果是present这增加了项目操作栏。
        。getMenuInflater()膨胀(R.menu.main,菜单);
        返回true;
    }}

日志文件的猫

  2月4日至8日:29:33.500:D / dalvikvm(25400):晚启用CheckJNI
2月4日至8日:29:33.535:D / dalvikvm(25400):调试器脱落;对象注册了1项
2月4日至8日:29:33.730:D / AndroidRuntime(25400):关闭VM
2月4日至8日:29:33.730:W / dalvikvm(25400):主题ID = 1:螺纹未捕获的异常(组= 0x40d4b2a0)退出
2月4日至8日:29:33.750:E / AndroidRuntime(25400):致命异常:主要
2月4日至8日:29:33.750:E / AndroidRuntime(25400):了java.lang.RuntimeException:无法启动活动ComponentInfo {com。示例/ com.example.MainActivity}:android.view.InflateException:二进制XML文件中的行# 17:错误充气类片段
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread.access $ 600(ActivityThread.java:140)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1227)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.os.Handler.dispatchMessage(Handler.java:99)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.os.Looper.loop(Looper.java:137)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread.main(ActivityThread.java:4898)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在java.lang.reflect.Method.invokeNative(本机方法)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在java.lang.reflect.Method.invoke(Method.java:511)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1008)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在dalvik.system.NativeStart.main(本机方法)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):android.view.InflateException:二进制XML文件行#17:错误充气类片段产生的原因
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.inflate(LayoutInflater.java:489)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:308)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Activity.setContentView(Activity.java:1924)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在com.example.MainActivity.onCreate(MainActivity.java:12)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Activity.performCreate(Activity.java:5206)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):... 11个
2月4日至8日:29:33.750:E / AndroidRuntime(25400):$ android.app.Fragment InstantiationException:产生的原因无法实例片段com.google.android.gms.maps.MapFragment:确保类名称存在,是公众,并且有一个空的构造是公
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Fragment.instantiate(Fragment.java:584)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Fragment.instantiate(Fragment.java:552)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Activity.onCreateView(Activity.java:4849)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):...... 21多
2月4日至8日:29:33.750:E / AndroidRuntime(25400):抛出java.lang.ClassNotFoundException:产生的原因com.google.android.gms.maps.MapFragment
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在java.lang.ClassLoader.loadClass(ClassLoader.java:501)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在java.lang.ClassLoader.loadClass(ClassLoader.java:461)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):在android.app.Fragment.instantiate(Fragment.java:574)
2月4日至8日:29:33.750:E / AndroidRuntime(25400):24 ...更多


解决方案

在这里你的错误是:

 产生的原因:android.app.Fragment $ InstantiationException:无法实例片段com.google.android.gms.maps.MapFragment:确保类名称存在,是公开的,有一个空的构造是公

这意味着,基本上 MapFragment 类不能被发现。 MapFragment 的Google Play服务库的一部分。要使用它,你需要导入的Google Play服务工作,然后从你的项目中引用它,你可以芦苇它是如何在这篇博客我写的前3步完成的:

谷歌地图API V2

i am creating a application with using the google map v2 on a real device but i get a problem and the application force close how to fix this after i read many and many solutions none of them worked with me it is something about the fragment

manifest file

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

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

    <permission 

        android:name="com.example.permission.MAPS_RECIEVE"
        android:protectionLevel="signature"/>

     <uses-permission android:name="com.example.permission.MAPS_RECIEVE" />
     <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="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="AIzaSyC6Sh22y4wF_tKlrE2MljwZ7Cd9-8V-Nks"/>
        <activity
            android:name="com.example.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>

layout file

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <fragment 
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_below="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>

java file

package com.example;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

log cat file

04-08 02:29:33.500: D/dalvikvm(25400): Late-enabling CheckJNI
04-08 02:29:33.535: D/dalvikvm(25400): Debugger has detached; object registry had 1 entries
04-08 02:29:33.730: D/AndroidRuntime(25400): Shutting down VM
04-08 02:29:33.730: W/dalvikvm(25400): threadid=1: thread exiting with uncaught exception (group=0x40d4b2a0)
04-08 02:29:33.750: E/AndroidRuntime(25400): FATAL EXCEPTION: main
04-08 02:29:33.750: E/AndroidRuntime(25400): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class fragment
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.os.Looper.loop(Looper.java:137)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread.main(ActivityThread.java:4898)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at java.lang.reflect.Method.invokeNative(Native Method)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at java.lang.reflect.Method.invoke(Method.java:511)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at dalvik.system.NativeStart.main(Native Method)
04-08 02:29:33.750: E/AndroidRuntime(25400): Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class fragment
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:308)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Activity.setContentView(Activity.java:1924)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at com.example.MainActivity.onCreate(MainActivity.java:12)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Activity.performCreate(Activity.java:5206)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
04-08 02:29:33.750: E/AndroidRuntime(25400):    ... 11 more
04-08 02:29:33.750: E/AndroidRuntime(25400): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Fragment.instantiate(Fragment.java:584)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Fragment.instantiate(Fragment.java:552)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Activity.onCreateView(Activity.java:4849)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
04-08 02:29:33.750: E/AndroidRuntime(25400):    ... 21 more
04-08 02:29:33.750: E/AndroidRuntime(25400): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment
04-08 02:29:33.750: E/AndroidRuntime(25400):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
04-08 02:29:33.750: E/AndroidRuntime(25400):    at android.app.Fragment.instantiate(Fragment.java:574)
04-08 02:29:33.750: E/AndroidRuntime(25400):    ... 24 more

解决方案

Your error here is:

Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public

which means that basically MapFragment class could not be found. MapFragment is part of the google-play-services library. To use it you need to import the google-play-services into your workspace and then reference it from your project, you can reed how it's done in the first 3 steps of this blog post I wrote:

Google Maps API V2

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

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