I am working on a Mapview in my android application, in which i have to show few lat long location with balloons on the map view.
It is working well in emulator and when I run thru my run configuration in my device too, but when i send the apk for other devices, the MAP view class do not generate MAP.
This problem arises only when I transfer the APK for other devices. The APK is Signed well with the authenticate signature.
Please let me know the cause of such prob.
The only reason I know so far for devices not showing the maps is related to the maps api key wich should be in your map layout with something like this: android:apiKey="Your Maps API Key goes here"
you can find the info here: Android MapView Tutorial and I will quote a bit of it that might be your issue:
For the purpose of this tutorial, you should register with the SDK
debug certificate, which will only be valid while your application is
signed with the debug key (once you sign with your private key, you
will need a new API key). When you get your key, insert it for the
value of android:apiKey.
Related
I've been trying to get Google Maps working for hours, but all I get is a gray screen. No map at all. I know similar questions have been asked here and I read all of them without getting any further.
A few hours ago I managed to get the Maps working when running the app from my computer, but when installing the APK, it didn't work. So I noticed that there are different API keys for debugging and the release. I decided to start all over again, with generating new keys and so on. So I removed my existing keys from Google, generated new google_maps_api.xml files and followed the instructions.
But now, when running the app from my phone I am getting the following error message:
E/b: Authentication failed on the server.
E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: (OLD_API_KEY)
Android Application (<cert_fingerprint>;<package_name>): (MY_FINGERPRINT);(PACKAGE_NAME)
So, first of all, how do I ensure that "Google Maps Android API v2" is enabled? On the Google API website I can only find a Google Maps Android API that I enabled. I can't find anything about v2.
And, how can I "Ensure that the following Android Key exists". I removed the OLD_API_KEY because I wanted to start from the beginning. No idea where it is coming from now. I obviously don't have it. So I can't ensure it is there. Why can't I just use a new one that I generated? And why does it even know my old key, that I already removed?
If I understand everything correctly, I am supposed to generate one API key for debugging and add it to my google_maps_api.xml in the debug folder. And for the release I generate another key and add it to the google_maps_api.xml in the release folder. Do I also need to add an API key to my AndroidManifest.xml? At the moment I have this between my application tags:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="#string/google_maps_key"/>
Where #string/google_maps_key is my debugging key.
My main problem is, why I need to ensure that an old api key exists, that I already deleted. How can I tell Android that I want to use a different one?
I got it working! It turns out that it took a long time until the API keys are actually available to the app. A lot longer than those 5 minutes mentioned on the API page.
So, when you an API key and get the same error message as me, it is probably best to just have a small break and check again in like 20 minutes until the API key is available.
I am trying to create a map app with the GOOGLE API, for use on android devices, but I'm fairly new to this so have been following tutorials to get me started. I fixed my initial problem, however another one has appeared and I can't find what's wrong / how to change it!
When running the app through a mobile, it loads onto the phone fine, a screen loads (the sort of beige colour you see when google maps is loading) as well as the logo and zoom controls. But stops after this and displays the following error in LogCat:
Authorization Failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
Ensure that the following correspond to what is in the API Console: Package Name: com.example.myapp, API Key: [my api key], Certificate Fingerprint [my code]
Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).
I have completed the steps on the link and checked my code and made sure all those details match, but it's still not working.
This is probably a very basic error, but how would I go about resolving this / Am I looking in the correct place?
[Code no longer here; had to delete it]
If you run the app through Eclipse with a USB connected device, you need to use the MAPs debug key. If you export the app and load the .apk on a device, that app would have to be compiled with the production key.
Last resort: uninstall and re-install app. Clean and rebuild the project is also a good idea
Moreover, please make sure your API key was an Android key, not a browser or server key. Also check that the service is Google Maps API for Android V2, not Google Maps JavaScript API V2.
If you still get any problems, check your set-up against the top answer in this question: Google Maps API V2 - always get authentication error.
I am running sample code that is provided on Google Map Documentation for Google Map Api v2.The Code run successfully but Map is not loaded on the Device. Only White Screen is Shown on the Device. I am using 2.3.6 version android device.
Please Help me to resolve the issue
Check if u have the map key for the package name u provided while creating the map key.
I was getting white map screen but i inserted map key of the package i was testing.
Then i created new project but used the previous map key hence getting white screen.
Always remember you have to use new map key for each package you create. Genereally people forget that thing..(atleast i forgot to generate new key for new package).
Hope this will solve ur problems.
All the best
Most likely you're using release SHA1 fingerprint for generating Google API Key. Since you're using Eclipse for debugging your application is signed using debug key. So, you should use debug key instead to generate Google API key.
As soon as your app will be ready for publishing - just switch to release key.
I have signed and get this kind of code:
<com.google.android.maps.MapView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0vzxVMvckBdI64O0FdGSRXawhfAlw"
/>
Then I put it to main.xml, under the . I run the project, it force close. The error is that XML can not find MapView. But I have add the library below. Moreover, I have test with google API Vitual machine, and it does not work too. Then I add Internet permission, and add:
<uses-library android:name="com.google.android.maps" />
under the in manifest, but it still does not work.
Could anybody tell me clearly step by step what I have to do, I am in a mess now and I can understand want to do next.
Before signed the apiKey, my application run well. Anybody help me.
Thanks in advance.
If you app worked well before signing your app then its the problem of you map Api key.
You can get a temporary Maps API Key based on your debug certificate, but before you publish your application, you must register for a new Key based on your release certificate and update references in your MapViews accordingly.
use adb to install the apk on your device/emulator (adb install app.apk). Don't forget to uninstall the debug version first, otherwise the signature difference will prevent the installation
EDIT:
When using GoogleMaps for Android, you need two keys - debug and release.
The "debug" key is kind of a misleading term. This key is also to be used when you develop the app in Eclipse. So essentially, use the debug key for development, testing, debugging.
When you're ready to launch the app to Market, set the android:debuggable="false" in the AndroidManifest.xml and use the Signed API key.
When using the signed API key, the MapView will show up ONLY when the app is installed from the Android Market. So, installing the app from Eclipse (Run As, Debug As, etc) or command line (adb install) won't show the MapView. Rest assured, once the app is in the Market - you download it and the MapView will show up.
With the signed API key, if you deploy the app from Eclise, you will get a "Server returned 3, IOProcessing Exception 26" as a warning - just ignore it.
Note: Also ensure there are no duplicate instances of the same MapView. If your app needs "x" no. of MapViews, generate "x" no. of new signed keys (one for each MapView) since GoogleMaps has a query limit for a single MapView instance.
For getting both the keys, follow the steps for Obtaining API keys for GoogleMaps on Android.
I have attached a mapview to my layout and have a it showing a compass and my current location. The problem I have is, that there is no street map shown in the view, so basically I just see the compass and my current location over a blank grid.
When you run or debug through Eclipse your app is signed with your debug key which will have been automatically created. It is not the same as the key you sign your app with when releasing it.
You need to get an API key using your debug key.
See the 'Getting the MD5 Fingerprint of the SDK Debug Certificate' section on http://code.google.com/android/add-ons/google-apis/mapkey.html
Once you are ready to release your app, you replace the debug API key with the API key you are currently using.
Make sure you have the INTERNET permission and a proper API key. Either of those will give you the blank grid effect.
http://code.google.com/android/add-ons/google-apis/mapkey.html
Turns out the map is only shown when the app is signed and uploaded using adb install {path to app}, the same app didn't work when I run or debug using Eclipse.
Check out the followings:
1. include jar of maps.
2. generate your certificate and register it. It should work now
:)