【问题标题】:android google map services安卓谷歌地图服务
【发布时间】:2014-07-18 11:30:08
【问题描述】:

我是 android 新手,我正在研究显示地图 我看到代码可以在类似的东西上运行,但问题是该项目不能在除 kitkat 之外的任何 android 版本上运行 它总是让我收到错误信息 当我从 layout.xml 文件中删除“片段”标签时,不会发生错误,但当然不会显示地图 如果我放“com.google.android.gms.maps”而不是“fragment”标签,这将是同样的问题

正如我之前所说,它仅适用于 kitkat(我在注释 2 上尝试过,它有效) 当我制作项目时,将最小版本 4.0 如此清楚地问题出在 谷歌播放服务

所以任何人都可以帮助我解决这个问题吗?请

layout.xml

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

tools:context=".MainActivity" >

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

清单

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

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

 <uses-permission android:name="com.streetApp.StreetApp4.permission.MAPS_RECEIVE"      android:protectionLevel="signature" />
 <uses-permission android:name="com.streetApp.StreetApp4.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<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="com.google.android.maps"/>
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<library />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.streetApp.steertapp4.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>
<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="AIzaSyCjH-Qv2-8DIYpkm41ciYUAUkmiBmx2BWw" />




 </manifest>

【问题讨论】:

  • 请向我们展示您的错误日志和相关代码
  • 我编辑了问题并发布了代码,这里是 log cat 中的消息示例,我得到 Failed to find provider info for com.google.settings java.lang.RuntimeException: Unable to start activity ComponentInfo{com.streetApp/com.streetApp.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class fragment
  • 你应该在&lt;/application&gt;之前包含&lt;meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyCjH-Qv2-8DIYpkm41ciYUAUkmiBmx2BWw" /&gt;,并且你应该包含com.google.android.gms.version作为元数据。您是否按照 Google Maps API Android 上的说明进行操作?如果您遵循它,您将完全没有问题。
  • 我会把新问题放在答案之间

标签: android eclipse google-maps google-play-services


【解决方案1】:
<meta-data 
    android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" />

我认为您忘记将您使用的 Google Play 服务版本添加到清单中:)

【讨论】:

    【解决方案2】:

    见日志猫。他们建议像你这样的版本代码使用 6400012 ,例外的版本代码是 6400035 。所以你用例外代码替换版本代码。另一个使用谷歌控制台注册的应用程序,某些情况下您在地图中看到空白。 API KEY 产生的问题

    【讨论】:

    • 在日志中我得到 Failed to find provider info for com.google.settings java.lang.RuntimeException: Unable to start activity ComponentInfo{com.streetApp/com.streetApp.MainActivity}: android.view .InflateException: Binary XML file line #16: Error inflating class fragment
    • 还有更多只是一个示例
    【解决方案3】:
    //In xml 
        <fragment
            android:id="@+id/map"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            class="com.google.android.gms.maps.SupportMapFragment" />
    
        //    in java file 
            public FragmentManager fManager;
            public GoogleMap googleMap;
            SupportMapFragment mapFragment;
    
        //declare 
                fManager = getSupportFragmentManager();
                mapFragment = (SupportMapFragment) fManager.findFragmentById(R.id.map);
                googleMap = mapFragment.getMap();
                googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
    

    【讨论】:

    • // google_play_services_version 替换此版本代码
    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多