Google Map API V2 和旧版 Google Play Services Lib

7
我将在我的Android应用程序中使用地图,并且应该使用Google Play服务。我在这里阅读了许多关于此问题的问答。在这个问题中,被接受的答案建议使用旧版本的Google Play服务库,例如Froyo版本。我下载了Google Play服务r10并在我的应用程序中使用它,但是我遇到了错误。
如果我从清单中排除此行代码:
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

当我在我的设备上运行应用程序(我的设备当前版本的google play服务为3.2.66),它会报错:

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

如果我把它包含在android:value = 4030500中,应用程序可以运行,但是会显示要更新“Google Play服务”。

那么我应该放什么android:value或者我的方式根本不正确?

问候

3个回答

4
我之前也遇到了同样的问题。 在我的清单文件中添加了以下两行代码后,问题得到了解决。
<meta-data android:name="com.google.android.gms.version" 
 android:value="@integer/google_play_services_version" />

<meta-data android:name="com.google.android.maps.v2.API_KEY"
          android:value="AIzaSyBAjfcxZvbt_COHjy7igHZnLBfsO1cfoM8" />

3
不确定你是否希望像那样公开显示你的API密钥。 - Gil Sand

4
我下载了 Google Play 服务 r10 并在我的应用中使用了它。
上述陈述是您问题的根本原因。如果您真的使用了 r10(甚至是 r12),那么在删除后,您需要卸载并重新安装该应用程序以使其正常工作。
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

如果从您的AndroidManifest中进行设置,您将不会收到此错误:

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

这个错误简单地说明了,您链接到了4.0.30版本的Google Play服务库。
因此解决方案是删除上述meta-data并确保您链接到以前的版本之一。
如果使用gradle或maven,请将其依赖版本设置为3.2.65。如果按照旧方法进行开发,则在Android SDK Manager中下载Froyo的Google Play服务,在sdk / extras / google /中将其复制到您的工作目录中,并在项目首选项中将该项目选择为库依赖项项目。

我删除了元数据,但是没有起作用,我还尝试了“Froyo的Google Play服务”,也不起作用。 - Babak Fakhriloo
使用“Froyo的Google Play服务”时,它会显示您应用程序的AndroidManifest.xml中的元数据标签没有正确的值。期望为4030500,但找到了0。您必须在以下声明中具有... - Babak Fakhriloo
1
@persianDev 你似乎做错了什么。Froyo版本根本不需要meta-data标签。从一个新项目开始吧。 - MaciejGórski
我会从一个全新的项目开始,并告诉你。 - Babak Fakhriloo

3

我已经将版本13下载到我的电脑上,我正在开发它。 - Babak Fakhriloo
我添加后出现了“应用程序无法运行…”的问题,在日志窗口中看到以下消息:Google Play服务已过期,需要4030500版本但当前仅找到3266134版本。 - Babak Fakhriloo
@persianDev 在设备或模拟器上进行测试。日志很清楚,你使用的是旧版本,请更新到新版本。 - Raghunandan
@persianDev,请查看以下类似于您问题的解决方法建议:http://code.google.com/p/android/issues/detail?id=61675 - Raghunandan
我已经将我的设备连接到电脑上,并用它来调试应用程序,我不使用模拟器。 - Babak Fakhriloo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接