Reputation: 701
I am trying to release my app, but having a problem with google maps. The app contains an activity (MapActivity) that displays a map. When running in debug mode, the map works fine. I signed my app in release mode, and got SHA1. I created a new android key on Google console as required (SHA1;packageName). Got the API Key
In my App, I referenced a copy of google-play-services-lib as required. I am using ADT.
map.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.SupportMapFragment" />
MapActivity.java
public class MapActivity extends FragmentActivity {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rentalcar"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<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.ACCESS_NETWORK_STATE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="com.example.rentalcar.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.rentalcar.permission.MAPS_RECEIVE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name="com.example.rentalcar.MainActivity"
android:label="@string/app_name"
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="com.example.rentalcar.MapActivity"
android:label="@string/title_activity_map"
android:screenOrientation="portrait" >
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="My_Key"/>
</application>
</manifest>
The only weird thing is that when I use keytool to get SHA1 I get "Signature Algorithm name: SHA256withRSA. can this be the problem? If yes, how can I change it?
I am kind of stuck here! Thank you for any help!
Upvotes: 12
Views: 12746
Reputation: 79
I'm facing same problem, map work on debug but it's not working on Google Play Store
Try this:
I solved by add SHA1 key from Google play store to APIkey google maps console
or you can open this: https://github.com/react-native-maps/react-native-maps/issues/327
Upvotes: 1
Reputation: 1319
It's been a while, but I've found a very easy solution. Just set gradle like this:
buildTypes {
release {
isMinifyEnabled = false
isShrinkResources = false
}
}
Upvotes: -1
Reputation: 2988
I had the same problem... I've found the gogole_maps_api.xml file into the release/res/values folder... But inside the API_KEY was empty!!!!
After copying the API key also here, all works perfectly in debug mode and also in release!!
Thanks Sumit Sinha for suggestions
Upvotes: 1
Reputation: 19415
I was following everything yet was not able to get it done, the thing I was doing wrong is that
I was initially **checking ** both V1 and V2 signature versions.
Solution: Just check the V1 Signature
Upvotes: 0
Reputation: 141
I was also facing the same problem since last few days and it took me around 2-3 days to figure out the problem. You need to add your API key at 2 places one in app/src/debug/res/values/google_maps_api.xml and other in app/src/release/res/values/google_maps_api.xml.
You can find the release/google_maps_api.xml in the project mode not in the Android/application mode.
Upvotes: 3
Reputation: 549
if you already tried @Budius answer and still facing this error, it might be caused by the following situation:
When you add your MapFragment, Android Studio create 2 files google_maps_api.xml: one inside src/debug/res/values folder and the other inside src/release/res/values.
But for some reason only the debug folder file is showed on Android Studio. So, when you change the APIkey value, it is done only at debug folder file.
So just copy the google_maps_api.xml file to release folder and assure that both are with same APIKey.
this worked for me after all other attempts.
Upvotes: 14
Reputation: 5665
1- Create apk file using "Use the export Wizard" in "Android Manifest" file of your project.
2- After inserting key and before finishing, MD5 and SHA1 keys are shown as shown is this given pic-
3- Create new API Key for Android project for new SHA1 which is retrieved in point 2.
4- Use that API key in manifest file as shown below
5- Clean your project and build APK file again.
6- You can see google maps now in that apk.
Upvotes: 0
Reputation: 1527
Just clear data (Setting->App-select app-Clear data->uninstall) and try. this worked for me. Ensure that package name is same as that in google developer console. if you are created SHA1 code from custom keystore use the same in release mode. or generate apk by signing with that same keystore.
Upvotes: 0
Reputation: 39856
in the map API V2, the ONLY thing that change between a release version and a debug version is the Key that you register here https://code.google.com/apis/console/
If debug is working and final release is not, it's the only change necessary.
So I suggest you to double check the hash code of your release keystore and make sure that it's properly input on the Google API Console.
Upvotes: 11