2013-10-10 2 views
0

에뮬레이터에서 페이스 북 앱을 실행하는 간단한 프로젝트를 만들었습니다. 이 코드는테스트 실행 실패 : 'java.lang.ClassNotFoundException'으로 인해 계측 실행이 실패했습니다.

package com.facebook.katana; 

    import junit.framework.Assert; 
    import com.jayway.android.robotium.solo.Solo; 
    //import junit.framework.Assert; 
    import android.test.ActivityInstrumentationTestCase2; 

    @SuppressWarnings("rawtypes") 
    public class fb extends ActivityInstrumentationTestCase2{ 

    private Solo solo; 
    private static final String TARGET_PACKAGE_ID ="com.facebook.katana"; 
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.facebook.katana.LoginActivity";  
    private static Class<?> launcherActivityClass; 
    static{  
     try{ 
      launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); 
     } catch(ClassNotFoundException e) {  
      throw new RuntimeException(e); 
     } 
    } 

    @SuppressWarnings({ "unchecked", "deprecation" }) 
    public fb() { 
     super(TARGET_PACKAGE_ID, launcherActivityClass); 
     // TODO Auto-generated constructor stub 
     } 

    @Override 
    protected void setUp() throws Exception{ 
     solo = new Solo(getInstrumentation(), getActivity()); 
    }  

    public void testCanOpenSettings() throws InterruptedException{ 

      // wait for the specified time 
     solo.sleep(3000); 

     solo.clearEditText(0); 

     solo.enterText(0, "[email protected]"); 
     // wait for the specified time 
     solo.sleep(3000); 

     solo.enterText(1, "acd"); 

     solo.sleep(3000); 

    } 

    private boolean assertTrue(Object clickOnImage) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public void tearDown() throws Exception{ 
     try{ 
     solo.finalize(); 
     } catch(Throwable e) { 
      e.printStackTrace(); 
     }  
     getActivity().finish(); 
     super.tearDown();   
    } 
} 

매니페스트 파일 fb.java입니다 java.lang.ClassNotFoundException가

'로 인해 실패 계측 실행 : 프로그램을 실행하면 다음과 같은 오류가 테스트 실행 실패가 표시됩니다.

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.facebook.katana.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="18" /> 

    <instrumentation 
     android:name="android.test.InstrumentationTestRunner" 
     android:targetPackage="com.facebook.katana" /> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <uses-library android:name="android.test.runner" /> 
    </application> 

    </manifest> 

이 문제

+0

Launcher 활동 이름이 잘못되었습니다. 일단 이것이 올바르게 설정되면 앱 실행은 성공적이었습니다. – user2868943

답변

1

지정된 런처 활동 전체 클래스 이름을 해결 도와주세요 XML 파일 (FB2 Manifest.xml가) 잘못되었습니다. 이것이 올바른 활동 이름으로 설정되면 프로그램 실행이 성공했습니다.

+0

'LAUNCHER ACTIVITY FULL CLASS NAME'의 정확한 이름을 아는 법. 난 그냥 응용 프로그램 프로젝트, 그냥 계측 및 하나의 테스트 프로젝트를 가지고, 여기 [참조] (http://stackoverflow.com/questions/21605221/android-test-project-is-crashing-with-error-test-run-failed- 계측 - 루) – paul