Tag: 谷歌播放服务

NoSuchFieldError:在Play Services 6.5中使用MapFragment时没有静态字段的MapAttrstypes

也许我错过了一些东西,但是我无法在Play Services 6.5中使用新的仅支持Google Maps的依赖关系 我得到以下例外: java.lang.NoSuchFieldError: No static field MapAttrs of type [I in class Lcom/google/android/gms/R$styleable; or its superclasses (declaration of 'com.google.android.gms.R$styleable' appears in /data/app/com.kaching.merchant.dev1-1/base.apk) at com.google.android.gms.maps.GoogleMapOptions .createFromAttributes(Unknown Source) at com.google.android.gms.maps.SupportMapFragment .onInflate(Unknown Source) performance: <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="my-awesome-key"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> Gradle文件: compile 'com.google.android.gms:play-services-maps:6.5.+' compile 'com.android.support:support-v4:21.0.2' 布局: <fragment android:id="@+id/map" android:name="com.google.android.gms.maps.MapFragment" android:layout_width="match_parent" android:layout_height="match_parent"/> 这是打破了还是我做错了什么? […]

太新的Android谷歌播放版本

我已经使用Android Studio创build了一个Android应用程序。 我在清单文件中有这样的代码: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 并且@ integer / google_play_services_version的值是520800(当我连接Google Play库时自动添加的值,没有硬编码)。 这是图书馆和项目之间的联系 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:19.+' compile 'com.google.android.gms:play-services:+' } 当我从菜单中添加Google Play库时也会自动生成。 应用程序工作正常,当我生成一个签名的APK,并尝试上传到谷歌市场时,它给了我一个错误,说我试图上传一个APK使用谷歌播放版本5208000,我应该使用版本5100000或更低。 我已经尝试google_play_services_version到5100000,但应用程序从一开始就停止工作。 我应该如何使我的应用程序可以在市场上进行上传?

Google地图精简版模式会在RecyclerView中引起混乱

我有一个RecyclerView这是一个项目的垂直滚动列表。 每个列表项都包含Lite模式下的Google Maps V2 MapView。 我正在利用这个新function,它返回位图,而不是一个完整的地图作为Google Static Maps API的替代品。 MapView要求您从父Activity / Fragment的相应方法调用onCreate() , onResume() , onPause() , onDestroy()等。 从RecyclerView.Adapter和/或RecyclerView.ViewHolder哪里可以调用这些地方? 我如何清理回收的MapViews,使内存不泄漏,同时保持清单免费? 谷歌说精简模式可以在列表中使用: …'精简模式'的地图选项,非常适合您想要提供一些较小的地图的情况下,或者一个非常小的地图,以至于有意义的交互是不切实际的,比如列表中的缩略图。 ListItem.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.android.gms.maps.MapView android:id="@+id/mapImageView" xmlns:map="http://schemas.android.com/apk/res-auto" android:layout_width="80dp" android:layout_height="100dp" map:liteMode="true" map:mapType="normal" map:cameraZoom="15"/> <!– … –> </RelativeLayout> RecyclerView.Adapter和ViewHolder public class NearbyStopsAdapter extends RecyclerView.Adapter<NearbyStopsAdapter.ViewHolder> { private final Context mContext; public class ViewHolder extends RecyclerView.ViewHolder […]

GooglePlayServicesUtil.getErrorDialog为null

我正在使用ACRA( arca.ch )来生成自动错误报告。 我刚刚使用Google Maps Android API v2发布了我的应用程序的新版本。 当试图显示由GooglePlayServicesUtil.getErrorDialog返回的对话框时,EEEPad和Transformer Pad用户报告了错误。 有谁知道为什么会发生这种情况? 以下是acra报告的相关代码和Logcat: 在调用这一行时: int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if(resultCode != ConnectionResult.SUCCESS) { //The dialog that comes back is null (probably due to the logcat message) Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69); //So when I call the next line, the app crashes with a NullPointerException dialog.show(); } […]

融合的位置提供商似乎不使用GPS接收器

Moto G上的Android 4.3,Nexus 7 2012上的Android 4.4.2,Nexus 5上的Android 4.4.2。 我不想收到定期的位置更新,我只是想要一个准确的位置,当用户按下button。 我已经按照这个例子: https : //developer.android.com/training/location/retrieve-current.html 在清单文件中: <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 我使用GooglePlayServicesUtil.isGooglePlayServicesAvailable检查Play服务是否可用 主要活动: //in activity onCreate method mLocationClient = new LocationClient(this, this, this); @Override protected void onStart() { mLocationClient.connect(); super.onStart(); } @Override protected void onStop() { mLocationClient.disconnect(); super.onStop(); } //in button onclick method mCurrentLocation = mLocationClient.getLastLocation(); […]

将google-play-services库导入Intellij IDEA 12(和13)

我想将Google Play服务库导入(并使用)到一个现有的Android项目中,但我正在努力解决一个依赖性问题。 所有由Google编写的文档都基于Eclipse。 我们使用IntelliJ IDEA。 我知道的事情: 我知道如何在IntelliJ中导入模块,库,添加依赖等。 我也知道,根据Google入门指南 ,您必须将Google-play-services-lib作为项目 (通过将现有代码导入到工作区中)添加到(Eclipse)中,并且您可以在IntelliJ通过从现有的代码添加一个新的模块。 这是相同的程序,不同的名称。 我也明白了Order和Export选项卡在Eclipse中的作用(IntelliJ也是这样做的)。 我做的事情: 为了安全起见,我将google-play-services_lib文件夹从Android SDK复制到我的项目根目录。 所以我有/ myprj和/ google-play-services_lib在同一级别(我也有/ facebooksdk和/ actionbarsherlock在同一级别),并进入“导入模块”(从现有的来源)。 然后点击下一个下一个…(它的工作,它被认可)。 项目结构看起来像这样(名称故意模糊): 这正确地添加了一个模块(如上图所示)。 现在我需要添加依赖,所以我的主要项目知道这一点。 我去我的模块,并在列表中,select我的主要模块 ,然后依赖关系选项卡。 我可以看到几个库(Joda时间,android-query,gson等)和两个模块 : FacebookSDK和actionbarsherlock 。 到现在为止还挺好。 这是当事情变得怪异的时候。 我试图添加的依赖项 。 注 :在大多数情况下,我试图检查和取消选中导出checkbox,并试图同时添加到sherlockbar模块,只是为了testing。 我知道这些是很多组合,但是哦。 1)添加一个jar子或目录(知道这是错的,我试过)。 并指向google play模块/ libs中的.jar,名称为:google-play-services.jar。 2)添加一个库 (然后将其添加到项目中) 3)添加模块依赖项 ,(同时select我的主项目)。 这显示你这样的popup窗口: 问题 即使我可以引用一个PlusClient和我得到正确的导入,当我尝试在我的布局xml中添加一个SignInButton ,我得到一个错误。 粘贴整个XML布局没有任何意义,因为它没有什么奇怪的,只是一个带有几个textview的RelativeLayout。 我添加了像这样的g +button: <com.google.android.gms.common.SignInButton android:id="@+id/sign_in_button" android:layout_width="wrap_content" […]

Google Play服务5.0.77

从6月25日起,两个使用广告的不相关的应用程序开始拥有这个NPE java.lang.NullPointerException at zo.a(SourceFile:172) at aeh.a(SourceFile:120) at afw.run(SourceFile:14) at afy.run(SourceFile:30) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856) 我认为这是有关谷歌播放服务更新。 有人能帮我解决这个问题吗? 只是为了确认问题与播放服务有关,我已经设法从一个名为AdWorker的主题中得知这个问题: thread at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor(Thread.java:1231) at sun.misc.Unsafe.park(Unsafe.java:323) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:973) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1282) at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207) at zo.a(SourceFile:147) at zo.a(SourceFile:170) at aeh.a(SourceFile:120) at afw.run(SourceFile:14) at afy.run(SourceFile:30) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856) 这是不正确的地方…但是没有地方在哪里举报 7月1日的例外数量是现在的6倍,几乎是6月27日的3倍。 在Android的谷歌代码项目问题 […]

添加应用内结算库时出错

我正在按照链接中提到的这些步骤执行此操作。 将IInAppBillingService.aidl文件复制到您的Android项目。 (1)如果您正在使用Eclipse:将IInAppBillingService.aidl文件导入到您的/ src目录中。 (2)如果您在非Eclipse环境中开发:创build以下目录/ src / com / android / vending / billing并将IInAppBillingService.aidl文件复制到此目录中。 build立你的应用程序 您应该在项目的/gen目录中看到名为IInAppBillingService.java的生成文件。 将TrivialDrive示例的/util目录中的帮助器类添加到项目中。 请记住相应地更改这些文件中的包名称声明,以便您的项目正确编译。 但是当我完成后,Eclipse给我一个错误: interface IInAppBillingService should be declared in a file called com\android\vending\billing\IInAppBillingService.aidl. aidl文件位于正确的目录中,但未生成IInAppBillingService.java文件。 有没有人见过?

在后台服务中使用Google Play服务LocationClient

我的应用程序旨在定期跟踪用户的位置,并将其发送到服务器,最近我改变了我的代码与谷歌播放服务的位置API。 我创build了locationClient并连接到onStartCommand中的服务 public int onStartCommand(Intent intent, int flags, int startId) { setUpLocationClientIfNeeded(); if(!mLocationClient.isConnected() || !mLocationClient.isConnecting()) mLocationClient.connect(); return START_STICKY; } 并在onConnected方法中,我发送一个位置请求, @Override public void onConnected(Bundle arg0) { System.out.println("Connected …"); mLocationClient.requestLocationUpdates(REQUEST, this); } REQUEST对象是, private static final LocationRequest REQUEST = LocationRequest.create() .setInterval(5*60*1000) // 5 minutes .setFastestInterval(3*60*1000) // 3 minutes .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 现在的问题是, onLocationChanged方法不会以给定的时间间隔(即5分钟或最快的间隔3分钟)被调用。 从日志中我可以看到,它只被调用两次或三次之后,根本没有被调用(我在1小时后检查)。 我的上面的代码是什么问题? (我也看不到任何“断开连接”的日志) 为了解决这个问题,我试图用alarmmanager来定期调用这个任务。 现在,如何通过来自广播接收机的Locationclient获取单个位置更新。 […]

Google Play服务在模拟器中丢失(Android 4.4.2)

对于我下面的模拟器,我收到错误消息:“未安装在设备上的Google Play服务”。 根据开发人员网站的说法,它说:“ 带有AVD的Android模拟器,运行基于Android 4.2.2或更高版本的Google API平台 。 无法理解模拟器是否正在运行4.4.2,那么为什么谷歌播放服务不存在? 一些相关的线程,但没有解决。 (添加这些只是为了指出这个问题是不重复的): 相关的主题 相关的主题