如何在同一个项目中使用android支持库v4和v13?

时间:2014-02-08 16:18:28

标签: android android-studio android-support-library

我正在尝试使用v4和v13支持库,ADT给出了错误:

Found both android-support-v4 and android-support-v13 in the dependency list.
Because v13 includes v4, using only v13.

我需要使用两者,因为我必须使用:

import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;

import android.support.v13.app.FragmentPagerAdapter;

我试图将库添加为外部jar,但后来我得到NoClassDefFoundError

我可以同时使用这两个库吗?还是可以替换其中一些导入文件?

提前致谢

编辑:

您好,感谢快速解答

我之前尝试过使用android.support.v4.app.FragmentPagerAdapter,但后来又遇到了另一个问题。

我有一个实现导航抽屉的主要活动,并使用FrameLayout加载碎片。此活动有一个显示片段的方法。该方法有下一个代码:

if (fragment != null) {
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();

如果我使用android.support.v4.app.FragmentPagerAdapter我也需要使用

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;

使用getFragmentManager();

时出现了下一个错误
Type mismatch: cannot convert from android.app.FragmentManager to  android.support.v4.app.FragmentManager

我读过我可以使用getSupportFragmentManager()但我收到另一个错误:

The method getSupportFragmentManager() is undefined for the type ActivityMain

这就是我想同时使用v4和v13库的原因

解决:

解决方案是使ActivityMain从FragmentActivity扩展并仅使用v4支持库

2 个答案:

答案 0 :(得分:3)

如果ActivityMain班级正在延长FragmentActivity,则会定义getSupportFragmentManager()

答案 1 :(得分:0)

根据文档,FragmentPagerAdapter也出现在支持库v4中(参见docs)。因此,如果这是您使用v13的唯一原因 - 您可以轻松摆脱它。