Google Play Services for Froyo是否与Android 2.3及更高版本兼容? [英] Is Google Play Services for Froyo compatible with Android 2.3 and higher?

查看:162
本文介绍了Google Play Services for Froyo是否与Android 2.3及更高版本兼容?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在阅读 Google Play服务设置文档时,听起来像Google Play Services for Froyo Rev. 12应该与Android 2.3及更高版本兼容。

然而,我在 Github上的GPSTest应用程序,目前包含Google Play Services for Froyo。



如果我尝试使用Google Play Services for Froyo Rev. 12构建项目,其元素为:

android:name =com.google.android.gms.version
android:value =@ integer / google_play_services_version/>

...包含在AndroidManifest.xml中,我得到一个构建错误:

 错误:找不到与给定名称相匹配的资源(值为'@ integer / google_play_services_version')。 

这是预期的(根据我当前的理解),因为Google Play服务中不存在此整数对于Froyo项目(sdk\extras\google\google_play_services_froyo\res\values)。



如果我从清单中删除此元素,它可以正常工作通过Eclipse构建和调试应用程序(就像我期望的那样)。但是,当我导出APK时,请在设备上安装(Samsung Galaxy S3 Android 4.3,Google Play Services v4.0.34 - 从Dropbox下载导出的APK),然后运行,启动时出现以下错误,应用程序崩溃:

  java.lang.IllegalStateException:应用程序的AndroidManifest.xml 
中的元数据标记没有正确的值。预计4030500,但找到0.您必须在< application>中声明
声明。元素:
< meta-data android:name =com.google.android.gms.version
android:value =@ integer / google_play_services_version/>
在com.google.android.gms.common.ba(未知来源)
在com.google.android.gms.maps.a.bn.a(未知来源)
在com .google.android.gms.maps.mg(未知来源)
在com.google.android.gms.maps.ma(未知来源)
在com.google.android.gms.aba(未知源)
在com.google.android.gms.aba(未知源)
在com.google.android.gms.maps.SupportMapFragment.onCreate(未知源)
在android.support .v4.app.Fragment.performCreate(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown来源)
在android.support.v4.app.BackStackRecord.run(未知源)
在android.support.v4.app.FragmentManagerImpl.execPendingActions(未知源)
在android.support .v4.app.FragmentManagerImpl.executePendingTransactions(未知源)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(Unknown Source)
at android.support.v4.view.ViewPager.populate(Unknown Source)
at android.support.v4.view.ViewPager .populate(未知源)
at android.support.v4.view.ViewPager.onMeasure(Unknown Source)
at android.view.View.measure(View.java:16848)
at android.view.View.Group.measureChildWithMargins(ViewGroup.java:5245)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java: 16848)
在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
在com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:302)
。在机器人.view.View.measure(View.java:16848)
在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)在android.widget.FrameLayout.onMeasure
(FrameLayout.java:31 0)
at com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2586)
at android.view.View.measure(View.java:16848)
。在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2189)
在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1352)
在android.view.ViewRootImpl.performTraversals(ViewRootImpl的.java:在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249 1535)

在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:6364)
。在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:791)
在android.view.Choreographer.doCallbacks(Choreographer.java:591)
在android.view.Choreographer.doFrame(编导。
at android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:777)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
在android.os.Looper.loop(Looper.java:137)
在android.app.ActivityThread.main(ActivityThread.java:
at java.lang.reflect.Method.invokeNative(Native Method)$ b $ at java.lang.reflect.Method.invoke(Method.java:525)
at com.android。 internal.os.ZygoteInit $ MethodAndArgsCaller.run处dalvik.system.NativeStart com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
(ZygoteInit.java:1187)
。 main(Native Method)

我使用Google Play Services for Froyo Rev. 12,这里是具有完整版本信息的AndroidManifest.xml:

 < manifest android:versionName =3.2.65(834000-30) android:versionCode =3265130
package =com.google.android.gms
xmlns:android =http://schemas.android.com/apk/res/android>
< uses-sdk android:minSdkVersion =8/> < /清单>

有没有办法使用Google Play Services for Froyo Rev.将单个APK部署到Google Play? 12 for Android 2.2 and higher?



或者是否需要将两个APK部署到Google Play(一个使用适用于Android 2.2的Google Play Services for Froyo,另一个使用Google Play Android 2.3及更高版本的服务,如果我想保留对Froyo的支持?



是否有人在Android 2.3及更高版本上成功部署Google Play Services for Froyo?

解决方案

答案是肯定的,Google Play Services for Froyo是向前兼容Android 2.3及更高版本的,并且不需要manifest元素。 / p>

看起来这个问题实际上是Google地图应用中的一个错误。



地图应用更新开始推出昨天(12/12/2013),我的手机今天安装了它(新版本是v7.5.0)。在此之后,启动时崩溃的问题神奇地消失了。我甚至回去测试了Dropbox的一个老版本,肯定会崩溃(只是为了防止Eclipse中的其他更改修复了某些内容),现在也可以运行。



(请注意,如果您支持API级别8 - Android 2.2,则只应使用Google Play Services for Froyo。如果 minSdkVersion > = 9,则您应该使用最新版Google Play服务,因为没有新功能被添加到Google Play Services for Froyo。)


In reading the Google Play Services setup documentation, it sounds like Google Play Services for Froyo Rev. 12 should be forwards-compatible with Android 2.3 and above.

However, I'm having issues implementing this in my GPSTest app on Github, which currently includes Google Play Services for Froyo.

If I try to build a project using Google Play Services for Froyo Rev. 12 with the element:

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

...included in the AndroidManifest.xml, I get a build error:

Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

This is expected (from my current understanding) because this integer doesn't exist in the Google Play Services for Froyo project (sdk\extras\google\google_play_services_froyo\res\values).

If I remove this element from the manifest, it works fine when building and debugging the app via Eclipse (as I would expect). However, when I export the APK, install on a device (Samsung Galaxy S3 Android 4.3, Google Play Services v4.0.34 - downloading the exported APK from Dropbox), and run, I get the following error on startup, and the app crashes:

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" />
        at com.google.android.gms.common.b.a(Unknown Source)
        at com.google.android.gms.maps.a.bn.a(Unknown Source)
        at com.google.android.gms.maps.m.g(Unknown Source)
        at com.google.android.gms.maps.m.a(Unknown Source)
        at com.google.android.gms.a.b.a(Unknown Source)
        at com.google.android.gms.a.b.a(Unknown Source)
        at com.google.android.gms.maps.SupportMapFragment.onCreate(Unknown Source)
        at android.support.v4.app.Fragment.performCreate(Unknown Source)
        at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
        at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
        at android.support.v4.app.BackStackRecord.run(Unknown Source)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(Unknown Source)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(Unknown Source)
        at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(Unknown Source)
        at android.support.v4.view.ViewPager.populate(Unknown Source)
        at android.support.v4.view.ViewPager.populate(Unknown Source)
        at android.support.v4.view.ViewPager.onMeasure(Unknown Source)
        at android.view.View.measure(View.java:16848)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:16848)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:302)
        at android.view.View.measure(View.java:16848)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5245)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2586)
        at android.view.View.measure(View.java:16848)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2189)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1352)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1535)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1249)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6364)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
        at android.view.Choreographer.doCallbacks(Choreographer.java:591)
        at android.view.Choreographer.doFrame(Choreographer.java:561)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
        at android.os.Handler.handleCallback(Handler.java:730)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5455)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
        at dalvik.system.NativeStart.main(Native Method)

I'm using Google Play Services for Froyo Rev. 12, and here's the AndroidManifest.xml with the full version info:

<manifest android:versionName="3.2.65 (834000-30)" android:versionCode="3265130" 
    package="com.google.android.gms" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="8"/>  </manifest>

Is there a way I can deploy a single APK to Google Play using Google Play Services for Froyo Rev. 12 for Android 2.2 and higher?

Or do I need to deploy two APKs to Google Play (one using Google Play Services for Froyo for Android 2.2, and one using Google Play Services for Android 2.3 and up) if I want to retain support for Froyo?

Has anyone successfully deployed Google Play Services for Froyo on Android 2.3 and up?

解决方案

The answer is yes, Google Play Services for Froyo is forwards compatible with Android 2.3 and higher, and the manifest element isn't needed.

Looks like this issue was actually a bug in the Google Maps app.

A Maps app update started rolling out yesterday (12/12/2013), and my phone installed it today (new version is v7.5.0). After this, the crashing problem on startup magically disappeared. I even went back and tested an old version of the APK from Dropbox that was definitely crashing (just in case my other changes in Eclipse fixed something), and that now works as well.

(Note that you should only be using Google Play Services for Froyo if you're supporting API level 8 - Android 2.2. If your minSdkVersion is >= 9, then you should be using the most recent version of Google Play Services, as no new features are being added to Google Play Services for Froyo.)

这篇关于Google Play Services for Froyo是否与Android 2.3及更高版本兼容?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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