Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

This app won't run unless you update Google Play Services (via Bazaar)

I'm testing out the new Google Maps API V2 for Android, and I'm getting this message when the app launches:

MainActivity showing error message

This is running on an 4.1 emulator.

Here is my AndroidManifest.xml file:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.maptest"     android:versionCode="1"     android:versionName="1.0" >      <uses-sdk         android:minSdkVersion="8"         android:targetSdkVersion="15" />      <permission         android:name="com.example.maptest.permission.MAPS_RECEIVE"         android:protectionLevel="signature"/>     <uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>     <uses-permission android:name="android.permission.INTERNET"/>     <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"/>      <!-- Require OpenGL ES version 2 -->     <uses-feature           android:glEsVersion="0x00020000"           android:required="true"/>      <application         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/AppTheme" >          <activity             android:name=".MainActivity"             android:label="@string/title_activity_main" >             <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.maps.v2.API_KEY"             android:value="##myapikey##"/>      </application> </manifest> 

File MainActivity.java:

public class MainActivity extends Activity {      @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);     }      @Override     public boolean onCreateOptionsMenu(Menu menu) {         getMenuInflater().inflate(R.menu.activity_main, menu);         return true;     } } 

File activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent" >      <fragment xmlns:android="http://schemas.android.com/apk/res/android"         android:id="@+id/map"         android:layout_width="match_parent"         android:layout_height="match_parent"         class="com.google.android.gms.maps.MapFragment"/> </RelativeLayout> 

Clicking "Update" crashes the app with the following stacktrace:

E/Trace(1034): error opening trace file: No such file or directory (2) W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1 D/gralloc_goldfish(1034): Emulator without GPU emulation detected. D/AndroidRuntime(1034): Shutting down VM W/dalvikvm(1034): threadid=1: thread exiting with uncaught exception (group=0x40a13300)  E/AndroidRuntime(1034): FATAL EXCEPTION: main E/AndroidRuntime(1034): android.content.ActivityNotFoundException: No Activity found to handle Intent   { act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details? \   id=com.google.android.apps.bazaar flg=0x80000 pkg=com.android.vending } E/AndroidRuntime(1034):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545) E/AndroidRuntime(1034):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416) E/AndroidRuntime(1034):     at android.app.Activity.startActivityForResult(Activity.java:3351) E/AndroidRuntime(1034):     at android.app.Activity.startActivityForResult(Activity.java:3312) E/AndroidRuntime(1034):     at android.app.Activity.startActivity(Activity.java:3522) E/AndroidRuntime(1034):     at android.app.Activity.startActivity(Activity.java:3490) E/AndroidRuntime(1034):     at com.google.android.gms.internal.c$2.onClick(Unknown Source) E/AndroidRuntime(1034):     at android.view.View.performClick(View.java:4084) E/AndroidRuntime(1034):     at android.view.View$PerformClick.run(View.java:16966) E/AndroidRuntime(1034):     at android.os.Handler.handleCallback(Handler.java:615) E/AndroidRuntime(1034):     at android.os.Handler.dispatchMessage(Handler.java:92) E/AndroidRuntime(1034):     at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(1034):     at android.app.ActivityThread.main(ActivityThread.java:4745) E/AndroidRuntime(1034):     at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(1034):     at java.lang.reflect.Method.invoke(Method.java:511) E/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) E/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) E/AndroidRuntime(1034):     at dalvik.system.NativeStart.main(Native Method) 

I've also referenced the Google Play Services project. What am I doing wrong here?

UPDATE

The corresponding bug in Google issue tracker (https://issuetracker.google.com/issues/35822258) was solved some time ago.

Now you can use Google Maps Android API in emulator and create Virtual devices with Play services as described in this answer:

https://stackoverflow.com/a/46246782/5140781

like image 806
soren.qvist Avatar asked Dec 03 '12 21:12

soren.qvist


People also ask

Why can't I update Google Play Services?

If still you cannot update Google Play Services, clearing cache can solve your problem. We also stated about this in the beginning as the reason. If you don't know, cache holds the app's data temporarily so that it can remember the information when you next open the app. Many times, old cache files get corrupted.

Why play market is not working?

The Google Play Store can stop working or start showing unresponsive behaviors. The reason could be either the service is down, or could be an OS or app-specific issue. Clearing cache, restarting device or updating app are some of the common fixes to resolve the issue.


2 Answers

UPDATE

The Google maps API v2 is now installed on the latest Google system images (api:19 ARM or x86).
So your application should just work with the new images. There is no need to install these files.

I've been trying to run an Android Google Maps V2 application under an emulator and once I finally got Google Play Services running, I updated my SDK to Google Play Services revision 4, and my emulator wouldn't run my application any more.

I have now worked out how to update my emulator from my transformer tablet. (You won't need a tablet as you can download the files below.)

I used Titanium Backup to backup my Asus Eee Pad Transformer (TF101) and then grabbed the com.android.vending and the com.google.android.gms APK files from the backup.

I installed these on an emulator configured with platform: 4.1.2, API Level: 16, CPU Intel/Atom x86) and my Google Maps V2 application works again.

That was all .. none of the other steps regarding /system/app were required.

My application only uses the Google Maps API, no doubt, more steps are required if you use other Google Play services.

New files for latest Google Play services:

  • com.google.android.gms-20140218.apk

  • com.android.vending-20140218.apk

Same instructions as before: Create a new emulator with any CPU/ABI, a non-Google API target (versions 10-19 work) and GPU emulation on or off, and then install the files:

adb install com.android.vending-20140218.apk adb install com.google.android.gms-20140218.apk 

If you are upgrading an existing emulator then you might need to uninstall previous versions by:

adb uninstall com.android.vending adb uninstall com.google.android.gms 

That's all.

like image 73
12 revs, 2 users 83% Avatar answered Oct 17 '22 04:10

12 revs, 2 users 83%


According to a discussion with Android Developers on Google+, running the new Map API on the emulator is not possible at the moment.

(The comment is from Zhelyazko Atanasov yesterday at 23:18, I don't know how to link directly to it)

Also, you don't see the "(via Bazaar)" part when running from an actual device, and the update button open the Play Store. I am assuming Bazaar is meant to provide Google Play Services on the Android emulator, but it is not ready yet...

like image 32
nicopico Avatar answered Oct 17 '22 04:10

nicopico