ile hata ayıklamasını derlerken DeviceEventManagerModule öğesini bulamıyor. Telefon yanıt verirken, yerel olarak yanıt verenler için bir Javascript yöntemi çağırması için bir modül yazmaya çalışıyorum. Ancak, react-native run-android
komutunu çalıştırdığımda, aşağıdaki hatayla birlikte compileDebugJavaWithJavac
çatlakları. Bu sorun için ama hiçbir şans ile çözüm için büyük internet arama varJava dosyası, Java
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)
bu
CallListenerModule sınıftır.sendEvent
yöntemi,
docs'dan kopyalanır.
@Nullable
parametresini params parametresinden kaldırdım çünkü başka bir hataya işaret ettim ve bir parametre olmadan olay göndermeye niyetim yok.
Bu benim ilk yazı SO yüzden herhangi yapıcı eleştiri takdir üzerindedir :)
Sen import ifadesini eksik: 'ithalat com.facebook.react.modules.core.DeviceEventManagerModule' – Robert
Teşekkür !! Bu hile yaptı. Hangi paketlerin içe aktarılacağını anlamanın kolay bir yolu var mı? İçe aktarma ifadeleri her zaman belgelere dahil değildir. –
Otomatik kod denetimi/derlemesi ile bir Java IDE kullanın - eksik içe aktarmalar hata olarak görüntülenir - genellikle içe aktarılacak sınıf önerileriyle. – Robert