2017-07-28 16 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

テストクラスでは、タグと出力ファイルはどのように定義されていますか? –

+0

[mcve]を入力してください。あなたの最初のコードスニペットは*さまざまな理由でコンパイルされませんでした。 'TAG'や' OUTPUT_FILE'の型を知らないし、完全なエラーテキストも含んでいません。 –

+2

'コンテキストコンテキスト' - 'AndroidTestCase'がrespを拡張しますか? 'Context'を実装しますか? –

答えて

5

あなたは

TestUtils(this, TAG, OUTPUT_FILE); 

が、thisをしているのは、その場合のコンテキストではありません。

方法getContext()はちょうどdoc

+0

は署名の仕組みを説明するのに役立つかもしれません。しかしこれは質問に答えます。 –

+0

@ΦXocen笑Пepeúpaツこれが問題だった。ありがとうございました。 – taz

+0

@tazあなたは大歓迎です! –

0

を見てTestUtilsコンストラクタの署名がタイプContextのオブジェクトを取り、あなたが

new TestUtils(this, TAG, OUTPUT_FILE); 

Testクラスでこれを実行するときに渡していない、ということを提供しますContextオブジェクト

thisの代わりにContextオブジェクト

チェックアウトthis質問

関連する問題