2011-11-30 125 views
4

我已經按照以下步驟來測試我的應用程序。套件構建過程中如何解決異常?

  1. 我已經創建了Android項目。
  2. 我創建了調試簽名我的示例應用程序和測試應用程序(這需要進行測試)
  3. 將在bin文件夾中sampleapp_debug.apk(在我的工作空間是存在的)
  4. 安裝了testapp_debug.apk在模擬器中。
  5. 現在我正在將該項目作爲Android JunitTest運行。

我得到下面的錯誤。如何解決這個..

java.lang.RuntimeException: Exception during suite construction 
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:239) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447) 
Caused by: java.lang.NullPointerException: Method name must not be null. 
at java.lang.ClassCache.findMethodByName(ClassCache.java:297) 
at java.lang.Class.getMethod(Class.java:985) 
at android.test.suitebuilder.TestMethod.getAnnotation(TestMethod.java:60) 
at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:39) 
at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:30) 
at com.android.internal.util.Predicates$OrPredicate.apply(Predicates.java:106) 
at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:42) 
at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:31) 
at com.android.internal.util.Predicates$NotPredicate.apply(Predicates.java:122) 
at android.test.suitebuilder.TestSuiteBuilder.satisfiesAllPredicates(TestSuiteBuilder.java:254) 
at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:190) 
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:373) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4218) 
at android.app.ActivityThread.access$3000(ActivityThread.java:125) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
at dalvik.system.NativeStart.main(Native Method) 

回答

10

我以前遇到過類似類型的問題。我通過在Testcode中使用默認構造函數而不是參數化構造函數解決了這個問題。下面的教程是有用的,我

See this tutorial

+0

我只有.apk。我是否需要創建Andorid項目和Android測試項目?或者我提到的程序是正確的?如果我錯了,請糾正。 – ChanGan

6

我遇到了同樣的錯誤,這解決方案爲我工作:

不要使用公共TestTextView(字符串名稱),但公衆TestTextView() 作爲構造函數。

因爲什麼W.Elsinga對他的評論在這裏提到Link

+0

謝謝,親切的先生! –

6

您引用的代碼已過時。 只需添加默認構造函數。

public StartActivityTest() { 
    super(StartActivity.class); 
} 
相關問題