如何在android中避免Class not found异常?

时间:2013-12-24 11:39:32

标签: android google-maps

我正在使用map API V-2开发一个示例地图应用程序。这个应用程序可以在其中一个具有果冻的设备上正常运行4.3但是,当我在另一台具有Gingerbread 2.3.5的设备上测试此应用程序时,该应用程序崩溃并显示以下异常。

android.view.InflateException: Binary XML file line#2: Error inflating class fragment.

ClassNotFoundException: android.view.fragment in loader dalvik..............

请指导我如何在Gingerbread设备上成功运行。提前谢谢。

这是我的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.MapFragment"/>

这是我的java文件:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

4 个答案:

答案 0 :(得分:0)

您需要添加支持v4库来执行此操作并使用FragmentActivity扩展MainActivity。

查看以下链接

https://developer.android.com/tools/support-library/setup.html

答案 1 :(得分:0)

右键单击您的项目并选择属性。现在转到Order and Export,然后检查support v4库选项。它不再显示例外。

答案 2 :(得分:0)

是的,您需要在先前版本的Android设备中添加支持地图的支持库,并且xml应该是这样的:

<fragment
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    class="com.google.android.gms.maps.SupportMapFragment" />

然后在地图活动中,您应该通过这种方式获取地图实例: -

mMap = ((SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map)).getMap();

注意:

您的地图活动应该扩展此 FragmentActivity 类是必要的。

 public class GetDirectionActivity extends FragmentActivity {
 }

答案 3 :(得分:0)

如果要将Google Maps API V2集成到将在11之前的API上运行的应用中,则需要将代码更改为使用MapFragment和简单Activity更改为{{1和SupportMapFragment。您可以在我写的博客文章指南中找到完整的集成指南:

Google Maps API V2 Guide