Sea*_*eau 7 eclipse android google-play-services
在阅读Google Play服务设置文档时,听起来像Froyo Rev. 12的Google Play服务应该与Android 2.3及更高版本向前兼容.
但是,我在Github的GPSTest应用程序中实现了这个问题,目前包括Froyo的Google Play服务.
如果我尝试使用以下元素使用Google Play Services for Froyo Rev. 12构建项目:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)
...包含在AndroidManifest.xml中,我收到一个构建错误:
Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').
Run Code Online (Sandbox Code Playgroud)
这是预期的(根据我目前的理解),因为这个整数在Froyo项目的Google Play服务中不存在(sdk\extras\google\google_play_services_froyo\res\values).
如果我从清单中删除这个元素,它在通过Eclipse构建和调试应用程序时可以正常工作(正如我所料).但是,当我导出APK时,安装在设备上(三星Galaxy S3 Android 4.3,谷歌播放服务v4.0.34 - 从Dropbox下载导出的APK),并运行,我在启动时收到以下错误,应用程序崩溃:
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)
Run Code Online (Sandbox Code Playgroud)
我正在为Froyo Rev. 12使用Google Play服务,这里是带有完整版本信息的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"/> </manifest>
Run Code Online (Sandbox Code Playgroud)
有没有办法可以使用适用于Android 2.2及更高版本的Froyo Rev. 12的Google Play服务将单个APK部署到Google Play?
或者,如果我想保留对Froyo的支持,我是否需要将两个APK部署到Google Play(一个使用Google Play Services for Froyo for Android 2.2,另一个使用Google Play Services for Android 2.3及更高版本)?
有没有人在Android 2.3及更高版本上成功部署了Froyo的Google Play服务?
gia*_*200 11
你不需要
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)
这是针对最新的Google Play服务修订版.如果您使用"Google Play Services for Froyo"库,那么您不需要它.
现在,谈论另一个问题.你究竟是如何"通过Eclipse调试应用程序"的?您使用的是调试密钥还是发布密钥?你是如何在设备内安装APK的?你有没有尝试过卸载 - >安装?您是否使用ADB安装或上传了APK作为Alpha/Beta测试?你确定要安装正确的APK吗?
答案是肯定的,对于Froyo的Google Play服务是向前兼容Android 2.3及更高版本,并且不需要清单元素.
看起来这个问题实际上是Google地图应用中的一个错误.
地图应用更新于昨天(2013年12月12日)开始推出,我的手机今天安装了它(新版本是v7.5.0).在此之后,启动时的崩溃问题神奇地消失了.我甚至回去测试了Dropbox的旧版本的APK,它确实崩溃了(以防我在Eclipse中的其他更改修复了一些东西),现在也可以.
(请注意,如果您支持API级别8 - Android 2.2 minSdkVersion,则应该只使用Froyo的Google Play服务.如果您的=> 9,那么您应该使用最新版本的Google Play服务,因为没有新功能正被添加到Froyo的Google Play服务中.)
| 归档时间: |
|
| 查看次数: |
11047 次 |
| 最近记录: |