3

我一直在开发一个简单的应用程序来加载地图视图。我遵循了 API。 https://developers.google.com/maps/documentation/android/start#add_a_map

在执行应用程序强制关闭并出现 LOGCAT ERROR 应用程序的 AndroidManifest.xml 中的元数据标签没有正确的值之后。预期为 4030500,但发现为 0。这是我的清单

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

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

<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-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="AIzaSyA5QozHkGwJP_9iJi7jtBV938T1wws02gA" />

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

     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
</application>

这是我的主要 xml

<?xml version="1.0" encoding="utf-8"?>

<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.MapFragment"/>

这是主要活动

package com.example.newgmaps;

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;
}

}

4

7 回答 7

3

请执行这两个步骤并告诉我

第一次更新您的 Google Play 服务,如图所示 在此处输入图像描述

第二次尝试我为你创建的这个新清单文件

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

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

    <permission
        android:name="com.example.newgmaps.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="icom.example.newgmaps.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <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.gms.version"
            android:value="4030500" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyA5QozHkGwJP_9iJi7jtBV938T1wws02gA" />

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

如果您也解决了这个问题,请告诉我谢谢

于 2013-11-08T10:05:25.600 回答
2

现在使用以前版本的 Google Play Services libproject。可以从这里下载:https ://dl-ssl.google.com/android/repository/google_play_services_3225130_r10.zip

为我工作。

然后,您可以稍后在 Google 向所有人提供最新版本时进行更新,但有消息告诉我,此更改传播到所有设备还需要一段时间。

于 2013-11-04T19:27:56.910 回答
1

如果您启动 Android SDK 管理器,您应该会看到“Google play services for Froyo”模块。安装并使用它而不是“新”版本。这对我有用。

于 2013-11-01T16:10:59.480 回答
1

在运行 4.3 的 2012 N7 上运行应用程序时,我遇到了同样的问题。

我认为 Play Services 的实际发布版本与以下 SDK 版本不匹配version.xml

google_play_services_version 4030500

因此,这要么是等待 Play 商店上的 Play 服务更新,要么可能尝试更改version.xmlingoogle-play-services_lib.

于 2013-11-01T10:50:08.917 回答
1

我在“AndroidManifest.xml”中的xml代码下面添加了这个

<Application 
...
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
...
</Application>

崩溃错误消失了。但是当我打电话...

int iErrorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);

“iErrorCode”是2。2的意思是这样的

public static final int SERVICE_VERSION_UPDATE_REQUIRED 已安装的 Google Play 服务版本已过期。调用活动应将此错误代码传递给 getErrorDialog(int, Activity, int) 以获取本地化错误对话框,该对话框将在显示时解决错误。常量值:2 (0x00000002) 详细信息...

LogCat 还说...

W/GooglePlayServicesUtil(4728):Google Play 服务已过期。需要 4030500 但找到 3266136

版本代码“4030500”在哪里?

[SDK]\extras\google\google_play_services\libproject\google-play-services_lib\res\values

您可以看到“version.xml”。打开它!

<?xml version="1.0" encoding="utf-8"?> <resources>
    <integer name="google_play_services_version">4030500</integer>
</resources>

躲猫猫~~!:) 这就是我们在更新新 SDK 并使用新的“google-play-services-lib”时收到此错误代码(2)的原因。

好的!知道了!让我们在我的设备上检查我的 Google Play 版本。

在此处输入图像描述

我手机上的版本是“4.4.21”我觉得没有问题。这是什么“3266136”?这是哪里来的?我无法理解这。

如果我弄清楚了,我会更新这个长答案。

祝你好运!大家!:)

更新 1: 我下载了 apk 4.4.22 并安装在我的手机上。但是,LogCat 仍然显示“3266136”。这真是一件奇怪的事情。我认为谷歌团队必须尽快修复它!!

4.4.22 在这里下载...

更新2: 毕竟,我决定将“google-play-services_lib”和“android-support-v4.jar”降级到以前的版本。我会等他们的。:)

于 2013-11-04T01:06:35.260 回答
1

Google 必须将 Google Play 服务更新到 4.xxx 版 在此处输入图像描述

于 2013-11-01T20:53:25.853 回答
0

尝试在 Manifest 的应用程序标记中添加此元数据标记:

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
于 2013-11-01T17:08:07.010 回答