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

7

我正在尝试使用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支持库。


为什么不使用android.support.v4.app.FragmentPagerAdapter? - coderplus
感谢您的回答。我已经编辑了我的问题,解释了我想要同时使用这两个支持库的原因。 - CarlosA
让ActivityMain继承自FragmentActivity,该类具有getSupportFragmentManager()方法。 - coderplus
谢谢Aneesh!!它正常运行。 - CarlosA
2个回答

3
如果ActivityMain类继承了FragmentActivity,那么getSupportFragmentManager()方法就会被定义。

0
根据文档,FragmentPagerAdapter也存在于support lib v4中(请参见docs)。因此,如果这是您使用v13的唯一原因-您可以轻松摆脱它。

感谢您的回答。我已经编辑了我的问题,解释了我想要同时使用这两个支持库的原因。 - CarlosA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接