I have an app where homepage is map.
Do not know why i am getting this error and along with this error Could not find class \'gpr\', referenced from method gps
I had the same issue after upgrading to API Level 23 in July (with client google-play-service_lib 5.0.77).
The issue was resolved after Google Play Service was updated to latest (6.1.09) on the test device.
So, it seems to have been (a device-specific issue) due to incompatibility between the Google Play Service version on the device/emulator and the client library API (google-play-service_lib) in the project.
According to Google's documentation, when the client is newer than the service, the client library API is supposed to resolve out-of-date service apk issues; (and it does in this case since the issue does not really affect released apk's) https://developer.android.com/google/play-services/index.html.
My earlier attempts to resolve this issue by using new API key, and fresh installs of Eclipse/ADT/SDK/google-play-service_lib, as suggested in this and other similar questions did not work.
I show you how I solved the same problem you have.
First of all, I cleaned all sdk and I downloaded again Google Play Services lib. Then I removed .android folder of my computer and I regenerated my debug.keystore.
After that, I just get my new SHA1 to obtain my Google Maps V2 Api Key.
After update my apikey, let's see how I change my code.
Now I use fragment with MapFragment insted of MapView in your xml layout.
<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"
tools:context=".MapsActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
And use FragmentManager to locate it:
public class MapsActivity extends Activity
{
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
// Gets the MapView from the XML layout and creates it
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.getUiSettings().setMyLocationButtonEnabled(false);
//map.setMyLocationEnabled(true);
map.setOnMapClickListener(this);
map.setOnMapLongClickListener(this);
try
{
MapsInitializer.initialize(MapsActivity.this);
}
catch (Exception e)
{
e.printStackTrace();
}
}
I hope that's helpfull and sorry if my english is so bad, regards
Could you post your manifest? Sans API key, of course.
Your log looks almost identical to mine for a problem I've had recently, which was fixed by adding the following to the manifest:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
I'm working on an application that was accessing maps just fine, then stopped out of the blue. I couldn't see anything actually pointing to a missing permission; I only picked up on it when I compared the manifest with another application that used maps api v2.
I'm still confused as to why it previously worked without it (Google says you need the permission for maps to work). Perhaps I'd once put it there and accidentally deleted the line, but either way putting it in is what fixed it.
Source: https://developers.google.com/maps/documentation/business/mobile/android/config