简体   繁体   English

Google Maps Android API v2 ClassNotFound运行时错误

[英]Google Maps Android API v2 ClassNotFound Runtime error

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. 关键部分是使用keytool为您的调试密钥库生成SHA1哈希。 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 : 我一直在尝试设置谷歌地图Android API v2并在设置了所有内容后说我得到了这个运行时异常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:

<?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: 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 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 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? 你在AVD上跑了吗? if yes try on real devices 如果是的话试试真实设备

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM