Yet another question on GoogleMaps Api Key and release mode.
I have my API key, correctly added the SHA-1 in the allowed Android Applications, copied the key in the manifest and the same in both google_maps_api.xml (debug, release) in Android Studio.
In debug everything works fine, but when I install the app through the Signed Apk it shows me gray screen and google logo.
Anyone knows what I can do about that?
Any help would be much appreciated.
This is my AndroidManifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.permission.C2D_MESSAGE" />
<application
android:name=".app.AppController"
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".Welcome"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/FullscreenTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="#string/title_activity_main"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".MenuActivity"
android:label="#string/title_activity_menu"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".GalleryActivity"
android:label="#string/title_activity_gallery"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.MainActivity" />
</activity>
<activity
android:name=".TripActivity"
android:label="#string/title_activity_trip"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".PromoActivity"
android:label="#string/title_activity_promo"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ContactActivity"
android:label="#string/title_activity_contact"
android:screenOrientation="portrait" >
</activity>
<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="#string/google_maps_key" />
I think you generated SHA fingerprint key from machine A and compiled your android project in machine B. That's one of reason you may get blank screen. Please build your android project in machine A.
I think that you miss google play services. You need to have it in order to use Google Maps API v.2 You can get it from here or here.
Did you implement the map in xml code like this:
<fragment
android:id="#+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
also implement map in java?
GoogleMap googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
googleMap.getUiSettings();
googleMap.getUiSettings().setZoomControlsEnabled(true);
There is more info about Google Maps here
Also if you have any question just ask
Update:
This part of the code:
<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="#string/google_maps_key" />
needs to implemented right after the activity of the class where the map is located/
For example if the map is located in Welcome class the the manifest should look like this:
<permission
android:name="com.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.permission.C2D_MESSAGE" />
<application
android:name=".app.AppController"
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".Welcome"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:theme="#style/FullscreenTheme" >
<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.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#string/google_maps_key" />
<activity
android:name=".MainActivity"
android:label="#string/title_activity_main"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".MenuActivity"
android:label="#string/title_activity_menu"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".GalleryActivity"
android:label="#string/title_activity_gallery"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.MainActivity" />
</activity>
<activity
android:name=".TripActivity"
android:label="#string/title_activity_trip"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".PromoActivity"
android:label="#string/title_activity_promo"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ContactActivity"
android:label="#string/title_activity_contact"
android:screenOrientation="portrait" >
</activity>
Update
Check if you have updated google play services in android sdk and also check in gradle if you have added this line in dependencies :
compile 'com.google.android.gms:play-services:7.0.0'
I have just same issue and i know why.
Check the logcat if you find:
Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.
Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Google Maps Android API: Ensure that the "Google Maps Android API v2" is enabled.
Google Maps Android API: Ensure that the following Android Key exists:
Google Maps Android API: API Key: YOUR_KEY_HERE
Google Maps Android API: Android Application (<cert_fingerprint>;<package_name>): xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;com.example
Check file google_maps_api.xml in folder
app\src\debug\res\valuess
and
app\src\release\res\values
For debug is another file with API that in release.
Related
Can someone help me i am new on android and i have published my app but its been 6 days i get no download from anyone. I think the issue with my manifest file. Do i need to add someone in manifest to get index by google playstore here is my manifest example`
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blogspot.znetworktv.facebookupdate"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<meta-data android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version"/>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="#string/facebook_app_id"/>
<application
android:hardwareAccelerated="true"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".why" />
<activity android:name=".Kion" />
<activity android:name=".Past" />
<activity android:name=".war" />
<activity android:name=".Start" />
<activity android:name=".bestad" />
<activity android:name=".start2"></activity>`
No, you don't need to add anything to manifest.
The problem is more likely in the title, screenshots and description of your app in Play Store. Check out Get discovered on Google Play search for more information.
I want to use various Google services in an Android app I am working on, such as Google Maps, Google Directions and Google Geolocation. I have followed the steps described in this link in order to get and Android API Key and I got one. I now try to add something very simple to my app, but it cannot even import package com.google. ... .
My Android.Manifest file is :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="di.uoa.gr.e_commerce" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name = "android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:label="#string/title_activity_login" >
</activity>
<activity
android:name=".SignupActivity"
android:label="#string/title_activity_register" >
</activity>
<activity
android:name=".InitialActivity"
android:label="#string/title_activity_initial" >
</activity>
<activity
android:name=".AddActivity"
android:label="#string/title_activity_add" >
</activity>
<activity
android:name=".DeleteActivity"
android:label="#string/title_activity_delete" >
</activity>
<activity
android:name=".SeeCartActivity"
android:label="#string/title_activity_see_cart" >
</activity>
<activity
android:name=".ModifyActivity"
android:label="#string/title_activity_modify" >
</activity>
<activity
android:name=".SearchActivity"
android:label="#string/title_activity_search" >
</activity>
<meta-data
android:name="com.google.android.geo.AndroidKey"
android:value="xxx (my key)"/>
</application>
In the file MainActivity.java I try to import :
import com.google.android.gms.maps.GoogleMap;
but google is underlined with red saying :
Cannot resolve symbol Google.
I am sure I am missing something but can't figure out what.
add Library dependancy:
com.google.android.gms:play-services-maps:9.4.0
permissions:
<permission
android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature"></permission>
<uses-permission
android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/>
You can check this site and can add Google maps to your project by single line of code
https://developers.google.com/android/guides/setup
I'm using Google Maps in my Android app and I'm seeing the following message on some older devices:
I understand the nature of this message and that updating will resolve this issue.
However I would like to avoid users seeing this all together, and just want the map to load on all devices.
Here's what my dependencies look like:
Please note that I added individual parts of Google Play services that I needed rather than the full library as I started receiving an error from Android Studio about too many lines of code - this was the work around as I just have to many libraries as it seems.
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Creating Permission to receive Google Maps -->
<permission android:name="com.xyzapp.it.supportmapfragment.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<!-- Permission to receive Google Maps -->
<uses-permission android:name="com.xyzapp.it.supportmapfragment.permission.MAPS_RECEIVE"/>
<!-- Permission to read Google Services -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--Maps API needs OpenGL ES 2.0. -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<supports-screens
android:anyDensity="true"
android:resizeable="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<application
android:name=".xyzappitApp"
android:hardwareAccelerated="true"
android:icon="#drawable/app_icon"
android:label="#string/app_name"
android:theme="#style/AppBaseTheme" android:largeHeap="true" >
<activity android:name=".SplashActivity" android:screenOrientation="portrait" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TabHostActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:icon="#drawable/app_icon" android:exported="true" />
<activity android:name=".StatusActivity" android:screenOrientation="portrait" />
<activity android:name=".StatusDetailsActivity" android:screenOrientation="portrait" />
<activity android:name=".MyAlertsActivity" android:screenOrientation="portrait" />
<activity android:name=".AlertLinesActivity" android:screenOrientation="portrait" />
<activity android:name=".AlertDetailsActivity" android:screenOrientation="portrait" />
<activity android:name=".PreferencesActivity" android:screenOrientation="portrait" android:theme="#style/ActionBarStyle" />
<activity android:name=".RouteListActivity" android:screenOrientation="portrait" />
<activity android:name=".StopListActivity" android:screenOrientation="portrait" />
<activity android:name=".StopTimesActivity" android:screenOrientation="portrait" />
<activity android:name=".UpgradeActivity" android:screenOrientation="portrait" />
<activity android:name=".TransfersActivity" android:screenOrientation="portrait" />
<activity android:name=".TransfersDetailsActivity" android:theme="#style/MyDialog" android:screenOrientation="portrait" />
<activity android:name=".ShareActivity" android:theme="#style/MyDialog" android:screenOrientation="portrait" />
<activity android:name=".ShareDetailsActivity" android:theme="#style/MyDialog" android:screenOrientation="portrait" />
<activity android:name=".MapActivity" android:configChanges="orientation|keyboardHidden" />
<activity
android:name="com.mopub.mobileads.MoPubActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name="com.mopub.mobileads.MraidActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name="com.mopub.common.MoPubBrowser"
android:configChanges="keyboardHidden|orientation|screenSize" />
<activity
android:name="com.mopub.mobileads.MraidVideoPlayerActivity"
android:configChanges="keyboardHidden|orientation|screenSize" />
<service android:name=".Service.NotificationService" />
<receiver android:name="com.xyzapp.it.Receiver.MyAlarmReceiver" />
<receiver android:name="com.xyzapp.it.Receiver.ConnectionChangedReceiver" android:exported="false">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name="com.xyzapp.it.Receiver.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.crashlytics.ApiKey" android:value="123456" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="123456" />
<meta-data android:name="com.google.android.gms.version" android:value="#integer/google_play_services_version" />
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" android:resource="#xml/global_tracker" />
</application>
Ideally I would like to know how to have the map just load and not force the user to update as my minSDK=10 and the app supports Android 2.3 devices and up.
Even if that means targeting a lower version of Google Play services to support SDK 10+ I'm ok with that solution.
Thanks!
However I would like to avoid users seeing this all together, and just want the map to load on all devices.
Then don't use Maps V2. Instead, use some other mapping solution (e.g., Open Street Map).
Otherwise, there is no "magic" dependency that will avoid this dialog on all devices. While you are welcome to use some older version of that play-services-maps dependency, there is no guarantee that ~1.5 billion devices will all support that particular version of the Play Services engine without any updates.
Hi everyone I'm trying to install an apk that I've designed with minsdk version of 14 and target of 19 onto bluestacks and its failing. What's weird is that I installed an app with the same api version of 14/19 on this very same bluestacks player a month ago(I deleted it now though to swap it with the new apk). Please let me know what api I should be developing in for bluestacks. Here's my xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demoww"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<application
android:allowBackup="true"
android:icon="#drawable/earth"
android:theme="#style/AppTheme" >
<activity
android:name=".LoadScreen"
android:label="#string/Linking_players" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SignUp"
android:label="#string/Signup" >
</activity>
<activity android:name=".MainActivity" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".suggestedfriends" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".search" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".requests" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".raul_profile" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".raul_message" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".profile" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".messages" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
<activity android:name=".friendslist" >
<meta-data
android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
</activity>
</application>
<!-- To access Google+ APIs: -->
<uses-permission android:name="android.permission.INTERNET" />
<!--
To retrieve OAuth 2.0 tokens or invalidate tokens to disconnect a user. This disconnect
option is required to comply with the Google+ Sign-In developer policies
-->
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<!-- To retrieve the account name (email) as part of sign-in: -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
</manifest>
You can check which version of Android your version of BlueStacks is designed for by looking at the table below:
http://forum.xda-developers.com/wiki/BlueStacks_App_Player
The Android version of my BlueStacks is 4.0.4. The API level is 15.
According to the table, the latest version (beta) conforms to 4.4.2 (KitKat).
Unless, you have that version, you have to lower the API level for your apk to 15 or even lower.
If your BlueStacks is installed on a PC, you can check its version by:
Start-> type "regedit"
In registry editor, go to "HKEY_LOCAL_MACHINE" , "SOFTWARE", "BlueStacks" and it should be there under "Version".
[These instructions to find the version number of an installed BlueStacks were originally posted by intheGame.]
If your BlueStacks is installed on a Windows PC, you can check its version by hovering over its taskbar icon.
Yesterday I published my app on the Google Play Store as Beta Testing. When I run it from Eclipse on my device it works great, but when I download it from the Google Play Store it doesn't work.
The first screen is an Splash Fragment which shows the Facebook Login button, when I click it it asks for the permissions and then it goes back to the Splash Fragment (It should hide the Fragment).
I tested it on another device and it hides the Splash Fragment, enters to the MainActivity and it tells me that I am not online.
I don't underestand why it does work when I run it from my Eclipse but it doesn't work when I run the version that I download from the Google Play Store.
Here is my Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tokensapp.tokens"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />
<permission
android:name="com.tokensapp.tokens.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.tokensapp.tokens.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.GET_TASKS" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH" >
</uses-permission>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name=".ScrumptiousApplication"
android:icon="#drawable/ic_launcher"
android:label="#string/tokens" >
<uses-library
android:name="com.google.android.maps"
android:required="true" />
<service android:name="com.tokensapp.tokens.NotificationService" />
<activity
android:name="com.apphance.android.LauncherActivity"
android:theme="#android:style/Theme.Translucent.NoTitleBar" >
</activity>
<activity
android:name="com.apphance.android.ui.LoginActivity"
android:launchMode="singleInstance" >
</activity>
<activity
android:name="com.apphance.android.ui.TestCycleActivity"
android:launchMode="singleInstance" >
</activity>
<activity
android:name="com.apphance.android.ui.ProblemActivity"
android:configChanges="orientation"
android:launchMode="singleInstance" >
</activity>
<activity
android:name="com.tokensapp.tokens.ActSplash"
android:label="#string/tokens"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="com.tokensapp.tokens.ActLoginFb"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.ActWelcome"
android:label="#string/tokens"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.ActMain"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.ActMain2"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="com.tokensapp.tokens.ActProfile"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="com.tokensapp.tokens.ActCompose"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name="com.tokensapp.tokens.ActViewToken"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.ActSettings"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.ActFriendChooser"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" />
<activity
android:name="com.tokensapp.tokens.BasicMapActivity"
android:label="#string/title_activity_main" />
<receiver android:name="com.tokensapp.tokens.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="#string/maps_key" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/app_id" />
<activity
android:name="com.tokensapp.tokens.ActLoginFb2"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="com.facebook.LoginActivity"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="com.tokensapp.tokens.MainActivity"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="com.apphance.android.LAUNCH" >
</action>
<category android:name="android.intent.category.DEFAULT" >
</category>
</intent-filter>
</activity>
<activity
android:name="PickerActivity"
android:label="#string/app_name" />
<activity
android:name="com.tokensapp.tokens.ActMyTokens"
android:label="#string/tokens"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.NoTitleBar" >
</activity>
<activity-alias
android:name=".ApphanceLauncherActivity"
android:targetActivity="com.apphance.android.LauncherActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" >
</action>
<category android:name="android.intent.category.LAUNCHER" >
</category>
</intent-filter>
</activity-alias>
</application>
<instrumentation
android:name="com.apphance.android.ApphanceInstrumentation"
android:targetPackage="com.tokensapp.tokens" >
</instrumentation>
Google Maps requires that the API key be built to the Application Signing Key. That means that the Maps API key you use for debugging (running through Eclipse) will be different than the Maps API key which will work on apps exported from Eclipse and signed to post on the Play Store. All you need to do is get an updated Maps API key using the same key you sign your app with!
Also, see this for a method of creating one Maps API key for both Debug and Release versions of your signed package.
Make sure your facebook app is in live mode.