2016-04-14 5 views
2

私は、電話機がコールを受信したときにJavascriptメソッドを呼び出す必要がある反応ネイティブのモジュールを作成しようとしていました。しかし、私がコマンドreact-native run-androidを実行すると、compileDebugJavaWithJavacが次のエラーで壊れます。私はこの問題のが、運と解決のための偉大なインターネットを検索していJavaでデバッグをコンパイルするときに、JavaファイルがDeviceEventManagerModuleを見つけられない

import com.facebook.react.bridge.NativeModule; 
import com.facebook.react.bridge.ReactApplicationContext; 
import com.facebook.react.bridge.ReactContext; 
import com.facebook.react.bridge.ReactContextBaseJavaModule; 
import com.facebook.react.bridge.ReactMethod; 


import com.facebook.react.bridge.ReactApplicationContext; 
import com.facebook.react.bridge.WritableMap; 
import com.facebook.react.bridge.Arguments; 

import android.util.Log; 

public class CallListenerModule extends ReactContextBaseJavaModule { 
    BroadcastReceiverCustom broadcastRecevier; 

    ReactContext context; 

    public CallListenerModule(ReactApplicationContext reactContext) { 
     super(reactContext); 
     context = reactContext; 
     broadcastRecevier = new BroadcastReceiverCustom(reactContext); 
    } 

    @Override 
     public String getName() { 
     return "CallListenerModule"; 
    } 

    public void sendCallEvent(String incomingNumber){ 
     WritableMap params = Arguments.createMap(); 
     params.putString("Number", incomingNumber); 
     sendEvent(context, "CallRecevied", params); 
    } 


    private void sendEvent(ReactContext reactContext, 
         String eventName, 
         WritableMap params) { 
     reactContext 
      .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class) 
      .emit(eventName, params); 
    } 
} 

CallListenerModule.java:44 error: package DeviceEventManagerModule does not exist (DeviceEventManagerModule.RCTDeviceEventEmitter.class) 

この

はCallListenerModuleクラスです。 sendEventメソッドは docsからコピーされます。私は @Nullableをparamsパラメータから削除しました。別のエラーが発生したため、パラメータなしでイベントを送信するつもりはないからです。

これはSOので、任意の建設的な批判が評価されての私の最初の投稿です:)

+0

あなたはimport文欠けている: '輸入com.facebook.react.modules.core.DeviceEventManagerModule' – Robert

+0

感謝を!それはトリックでした。インポートするパッケージを簡単に把握する方法はありますか? import文が必ずしもドキュメントに含まれているとは限りません。 –

+0

自動コードチェック/コンパイルでJava IDEを使用する - 欠落しているインポートはエラーとして表示されます - 通常、どのクラスをインポートするか提案します。 – Robert

答えて

4

あなたはクラスcom.facebook.react.modules.core.DeviceEventManagerModuleをインポートするのを忘れました。したがって、あなたは、次の行を追加することで、あなたの問題を解決することができます:

import com.facebook.react.modules.core.DeviceEventManagerModule

関連する問題