小编sec*_*lpb的帖子

无法通过ActivityInstrumentationTestCase2测试FragmentActivity

我在使用最近发布的Fragment支持API的Android应用程序执行android单元测试时遇到问题.对FragmentActivity运行测试时,日志中会显示以下错误,并且无法加载类.当针对相同的类运行,但是从Activity派生的那个时,测试工作正常.这两个类都可以正常用作应用!这意味着只需调用它们就可以正确显示它们的布局和功能.支持jar是构建路径的一部分,并包含在项目中.

我遇到的问题是利用片段(并支持pre3.0 android)的唯一方法是利用FragmentActivity,但如果不包括自动化测试那么这个库有什么用处.

4-05 18:00:11.276: WARN/dalvikvm(1095): Class resolved by unexpected DEX: Lcom/example/android/app/FragmentLayoutSupport;(0x406351a0):0x12e5c8 ref [Landroid/support/v4/app/FragmentActivity;] Landroid/support/v4/app/FragmentActivity;(0x406351a0):0x12e440
04-05 18:00:11.276: WARN/dalvikvm(1095): (Lcom/example/android/app/FragmentLayoutSupport; had used a different Landroid/support/v4/app/FragmentActivity; during pre-verification)
04-05 18:00:11.286: WARN/dalvikvm(1095): Unable to resolve superclass of Lcom/example/android/app/FragmentLayoutSupport; (49)
04-05 18:00:11.286: WARN/dalvikvm(1095): Link of class 'Lcom/example/android/app/FragmentLayoutSupport;' failed
04-05 18:00:11.286: ERROR/dalvikvm(1095): Could not find class 'com.example.android.app.FragmentLayoutSupport', referenced from method com.example.android.app.test.FrameLayoutTest.<init>
04-05 18:00:11.286: WARN/dalvikvm(1095): VFY: unable to resolve const-class 131 (Lcom/example/android/app/FragmentLayoutSupport;) in Lcom/example/android/app/test/FrameLayoutTest;
Run Code Online (Sandbox Code Playgroud)

这是我为证明问题而构建的代码.测试用例只是尝试实例化测试中的类:

FrameLayoutTest.java    
public class FrameLayoutTest extends
            ActivityInstrumentationTestCase2<FragmentLayoutSupport> {
        public FrameLayoutTest() {
            super(FragmentLayoutSupport.class); …
Run Code Online (Sandbox Code Playgroud)

junit android android-fragments android-support-library

28
推荐指数
1
解决办法
1万
查看次数