EDIT: For those struggling with this, checkout this link . Follow it carefully, but it does work! The crucial part is using keytool
to generate your SHA1 hash against your debug keystore. Also, don't forget to add one for release too!
I've been trying to setup Google Maps Android API v2 and after setting everything up as said I'm getting this runtime exception ClassNotFound
:
01-02 16:29:07.927: E/AndroidRuntime(12508): FATAL EXCEPTION: main
01-02 16:29:07.927: E/AndroidRuntime(12508): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MapActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread.access$1500(ActivityThread.java:121)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.os.Handler.dispatchMessage(Handler.java:99)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.os.Looper.loop(Looper.java:130)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread.main(ActivityThread.java:3701)
01-02 16:29:07.927: E/AndroidRuntime(12508): at java.lang.reflect.Method.invokeNative(Native Method)
01-02 16:29:07.927: E/AndroidRuntime(12508): at java.lang.reflect.Method.invoke(Method.java:507)
01-02 16:29:07.927: E/AndroidRuntime(12508): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
01-02 16:29:07.927: E/AndroidRuntime(12508): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
01-02 16:29:07.927: E/AndroidRuntime(12508): at dalvik.system.NativeStart.main(Native Method)
01-02 16:29:07.927: E/AndroidRuntime(12508): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
01-02 16:29:07.927: E/AndroidRuntime(12508): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.Activity.setContentView(Activity.java:1657)
01-02 16:29:07.927: E/AndroidRuntime(12508): at com.example.app.MapActivity.onCreate(MapActivity.java:11)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
01-02 16:29:07.927: E/AndroidRuntime(12508): ... 11 more
01-02 16:29:07.927: E/AndroidRuntime(12508): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.example.app-1.apk]
01-02 16:29:07.927: E/AndroidRuntime(12508): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-02 16:29:07.927: E/AndroidRuntime(12508): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-02 16:29:07.927: E/AndroidRuntime(12508): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.createView(LayoutInflater.java:471)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:549)
01-02 16:29:07.927: E/AndroidRuntime(12508): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
01-02 16:29:07.927: E/AndroidRuntime(12508): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
01-02 16:29:07.927: E/AndroidRuntime(12508): ... 20 more
Has anyone ever come across this before?
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"
class="com.google.android.gms.maps.MapFragment"/>
MapActivity:
import android.os.Bundle;
import android.app.Activity;
public class MapActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
}
}
您的活动需要从支持库扩展FragmentActivity
Try this code working perfect help full to you.
XML
<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=".MainActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
Java
package com.example.androidmapsv2;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import android.app.AlertDialog;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends FragmentActivity {
final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager myFragmentManager = getSupportFragmentManager();
SupportMapFragment mySupportMapFragment
= (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = mySupportMapFragment.getMap();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
if (resultCode == ConnectionResult.SUCCESS){
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS",
Toast.LENGTH_LONG).show();
}else{
GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices);
}
}
}
Did you run on AVD? if yes try on real devices
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.