2017-07-28 78 views
1

我試圖調用另一個類中存在於不同文件中的方法。構造函數未定義的錯誤 - Java

主文件:

public class Test extends AndroidTestCase { 
    mTestUtils = new TestUtils(this, TAG, OUTPUT_FILE); 

第二個文件:

public class TestUtils { 
    public TestUtils(Context context, String tag, String outputFile) { 

     mContext = context; 
     mTag = tag; 
     mOutputFile = outputFile; 
    } 
} 

它拋出構造函數未定義的錯誤。 任何幫助,將不勝感激。

+0

如何在測試類中定義tag和output_file? –

+0

請提供[mcve]。你的第一部分代碼不會爲*各種原因編譯,我們不知道'TAG'或'OUTPUT_FILE'類型,也沒有包含完整的錯誤文本。 –

+2

'上下文上下文' - 是否'AndroidTestCase'擴展resp。實現'Context'? –

回答

5

你正在做

TestUtils(this, TAG, OUTPUT_FILE); 

this是不是在這種情況下的上下文。

方法getContext()將提供你,只是看的doc

+0

可能有助於解釋簽名如何工作。但這確實回答了這個問題。 –

+0

@ΦXocę웃Пepeúpaツ這是問題。謝謝。 – taz

+0

@taz歡迎您! –

0

TestUtils構造方法的簽名需要Context類型的對象,當你這樣做的Test

new TestUtils(this, TAG, OUTPUT_FILE); 

你不及格Context對象

而不是this您應該通過Context對象

結帳this問題