I am new to Android software development and new to this site. I am hoping someone might have some experience with the problem I am having.
I've been following the Hello, MapView tutorial in order to not only learn the Android framework, but also the Google Maps library. I've tried my best to implement things exactly as the tutorial has instructed. My problem is that the application does load in my emulator (or even on my phone for that matter), but the map tiles do not load.
Searching Google I found a post by someone else on another site having the same issue, but his/her problem was that the important elements added to the AndroidManifest.xml file were not in the right order. I double-checked this in mine, but everything seems to be right.
So, I am not sure what the issue is and was hoping others have seen this before. I can provide any snippets of code, if that would help.
Thank you.
Non-loading tiles are usually the result of not having the API key set up correctly. Obtaining a Maps API key
To answer the response you left to d.: If you want to have it "just work" when you run from Eclipse you'll need to get an API key for your debug certificate. There's instructions on the same page as before. Do note that you'll have to swap back to your other key before publishing though.
I am guessing the issue is not that you have an incorrect map key, but that you do not have the proper keystore setup. The application needs to be signed by the same keystore you used to generate the map key. You've noted that you can get it to work when you sign the application yourself, but you need to setup a debug keystore in order to use the Maps API with regular Eclipse builds.
All Eclipse builds require a debug keystore; you just normally don't notice it because ADT generates one for you automatically. You should either follow the directions here and create your own debug keystore, or you should take the debug key that ADT automatically created for you (it'll show you where it created it in Windows > Preferences > Android > Build) and sign up for another Maps API key. That key will work with Eclipse.
(P.S., this does make it a hassle to compile for release, as you need to switch your key back and forth depending on the signing keystore.)
I had the issue of tiles not loading as well. As you mentioned your original post, one possibility is with the ordering of elements in the AndroidManifest.xml file. Specifically, I originally had the line:
<uses-permission android:name="android.permission.INTERNET" />
after the application element. Once I moved this line before the application element, my map tiles started loading again.
The tiles not loading is almost always a result of using an inaccurate API-key, i think. Have you checked yours?
Details: Obtaining a Maps API key
I had the same problem... my error was in the manifest file puting INTERNET permissions inside application. After moveing it out (upside) everying was working good.
Make sure you have 3g on the top panel. If you don't then there is no internet connection. Sometimes I have to turn the emulator on and off a couple of times to get 3g to come up.
d. is probably correct. However, Internet problems will also cause similar symptoms. Be sure that your INTERNET permission is properly positioned and that there are no proxy servers/firewalls impeding access to the Internet.
Another problem could be a proxy that you are behind. The proxy slows things down a lot and it will effect your app even though the maps app and internet browser in the emulator work fine.
This is old question, but here is one more answer: if you are as hasty as me, you might accidentally copy the finger print code instead of API key from the web page :)
The Hello, MapView tutorial your were talking about is no longer valid. New V1 map applications can no longer be done.
Follow https://developers.google.com/maps/documentation/android/ for Google Maps Android API v2 applications.
Related
I'm very, very new to Android and am currently trying to develop an app dealing with location. I want to start off on a map activity but after the first few times of rendering it correctly, it started giving me unrendered frangments and a rendering error. Pls Help.
Use the MapActivity provided by google in android studios.
Also make sure you have entered correct API key.
You can use this default activity on Android Studio.
Then, make sure you have an API key from google. Here's the link:
https://developers.google.com/maps/documentation/android-api/signup
After that:
Note: Always make sure that you are connected to the internet for the maps to render. Hope this helps!
OK, I'm having the weirdest bug right now : the Android application I'm working on is displaying a grey background instead of the map, such as below :
(source: hostingpics.net)
Here's the logcat :
04-25 15:08:42.082: E/Google Maps Android API(19139): Failed to load map. Could not contact Google servers.
04-25 15:08:42.082: W/Google Maps Android API(19139): Please add <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> into AndroidManifest.xml to ensure correct behavior under poor connectivity conditions.
I have NO idea what might have caused this. I only changed a small part of my code that was completely unrelated to the map. And besides, I tried reverting the changes I made, and it still didn't work. I tried adding the line the logcat gave me, changing the API key, re-installing the Google Play library, deleting the previous versions of my app on my tablet, basically pretty much everything that I read on the Internet. Still doesn't work.
If anyone has any idea what the problem might be, that would be great.
This problem is caused when there is a problem with your key or a problem with it's configuration in the Google API Console.
Go over this blog post I wrote on how to produce the key and integrate in in the console:
Google Maps API V2 key
if this is not helpful you can try to delete the dubug.keystore folder in you user folder, compile
some project in eclipe (which result in regenerating this key) and try to register it again.
UPDATE:
From the new error you posted, do you have this permission in your manifest file:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Try this: set the “Custom debug keystore” setting (empty by default) to the same value as the “Default debug keystore” in the Eclipse preferences.
Emil's post above helped me, I was getting the same error and realised that this was due to me changing the name of my project. I added the changed name along with the same SHA1 I had for my old project on a new line (leaving the one with the old name above) in the console and it seemed to work as normal.
I tried a lot of examples but still can't get it to work!
I have a grid with no maps and " couldn't get connection factory client".
I tried here and here and here and many others.
I tried to run it and on device but still the same.
Any ideas here?Any other good tutorial?
Thank you!
I see that you have tried my tutorial. The problem you describe usually happens when there is a problem with your key.
Please go over the next tutorial as well for getting your key:
Google Map API V2 Key
it this doesn't help you, try to delete the debug.keystore folder and run any android project to recreate a new key, and perform all the process of associating your key to your project using the console all over again.
And check again that you are adding all the permissions from the first tutorial in you manifest file.
this occurs when you use different key for the app in the manifest than the actual google project key. Try rechecking the key. I had the same problem, and figured it out the same way. It has nothing to deal with the code. Good Luck!
There are a number of posts (both here & elsewhere) about why a MapView might not be displaying tile info (personally, I've liked Android "Hello, MapView" Tutorial - Map Tiles Do Not Load, but there are other good ones, too).
My question is slightly different: I'm not getting tile info to show up (on my handset or in the emulator), and I'm looking for advice on what to try in order to debug this problem. As far as I can tell I've correctly located my debug.keystore, and used the Java JDK keytool to get the signature from it, which I then plugged into the Google web page, and then plugged THAT key back into my XML file. The app runs ok, it just doesn't display any tiles.
I was hoping that if I did something wrong here I'd see an error message in, say, logcat (or an exception that Eclipse might catch) that would confirm that this is the source of the error.
So here's my question - what would y'all recommend someone try in order to figure out what the actual problem is?
Step #1: See if the built in Maps application works. If it does not, you have problems with the device.
Step #2: Triple-check that you have the INTERNET permission correctly defined.
Step #3: Triple-check that you have a proper API key.
Step #4: Return to Step #1. :-)
I have many sample Maps applications scattered throughout my books -- here is the simplest one.
I want to use the Google Maps API in my Project.
I signed up and got the API key also.
When I run my application now I'm getting an error "Error generating final archive: Invalid keystore"
I m really fed up. It is very difficult to use Maps in an application.
Do you know what the problem is in this case?
I think you may have problem with "debug.keystore",
Go through this example: http://mobiforge.com/developing/story/using-google-maps-android,
read Obtaining a Maps API key paragraph carefully, hope this link useful to you.
Also refer this Tutorial .
Have you been having this problem with your other Android projects? Is your Windows locale NOT set to English, United States? If so, then this bug may apply to you
If it does not, then please post more info about how you are using the Map in your application. For example, please post the layout code where you use the map, and/or any relavant code. Include the file where you are setting your API key.
Finally, have you tried project->clean? You may want to be sure that your eclipse, your android SDK, and your android eclipse plugin (aka ADT) are all fully up to date before trying to clean the project!