React-native-onesignal: Fehler: Paket com.geektime.rnonesignalandroid existiert nicht

Erstellt am 19. März 2018  ·  4Kommentare  ·  Quelle: OneSignal/react-native-onesignal

Hallo,

Ich habe bereits einen Hinweis auf dieses Problem gesehen und die vorgeschlagenen Lösungen ausprobiert, aber es funktioniert immer noch nicht für mich.
Es funktioniert an einem leeren Projekt, wenn es installiert wird, aber nicht an meinem Hauptprojekt, also frage ich mich, was das Problem sein könnte?

Ich kann jedoch das richtige com.geektime.rnonesignalandroid-Paket in node_modules\react-native-onesignal\android\src\main\java\com\geektime\rnonesignalandroid finden, daher kann ich nicht verstehen, warum es nicht gefunden wird.

reagieren 16.0.0
reaktiv 0.54.2

Meine Hauptanwendung.java

package com.XXX;

import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
import android.app.Application;

import com.facebook.react.ReactApplication;
import com.AlexanderZaytsev.RNI18n.RNI18nPackage;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.inprogress.reactnativeyoutube.ReactNativeYouTube;
import com.oblador.vectoricons.VectorIconsPackage;
import com.imagepicker.ImagePickerPackage;
import com.RNFetchBlob.RNFetchBlobPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private static CallbackManager mCallbackManager = CallbackManager.Factory.create();

  protected static CallbackManager getCallbackManager() {
    return mCallbackManager;
  }

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    <strong i="12">@Override</strong>
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    <strong i="13">@Override</strong>
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(new MainReactPackage(),
          new ReactNativeOneSignalPackage(),

          new RNI18nPackage(), new FBSDKPackage(mCallbackManager), new ReactNativeYouTube(), new VectorIconsPackage(),
          new ImagePickerPackage(), new RNFetchBlobPackage());
    }

    <strong i="14">@Override</strong>
    protected String getJSMainModuleName() {
      return "index";
    }
  };

  <strong i="15">@Override</strong>
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  <strong i="16">@Override</strong>
  public void onCreate() {
    super.onCreate();

    FacebookSdk.sdkInitialize(getApplicationContext());
    // If you want to use AppEventsLogger to log events.

    SoLoader.init(this, /* native exopackage */ false);

    AppEventsLogger.activateApp(this);
  }
}

Die ReactNativeOneSignalPackage.java in meinen node_modules

package com.geektime.rnonesignalandroid;

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Created by Avishay on 1/31/16.
 */
public class ReactNativeOneSignalPackage implements ReactPackage {
...
}

Hilfreichster Kommentar

Ich weiß nicht warum, aber der "react-native link" hat die Zeile "compile project(':react-native-onesignal')" nicht hinzugefügt. Ich habe es manuell gemacht und es funktioniert jetzt

Ein weiteres kleines Problem ist, dass die Link-Aktion jedes Mal die folgenden Zeilen hinzufügt

import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
new ReactNativeOneSignalPackage(),

Das Problem kann geschlossen werden

Alle 4 Kommentare

Ich weiß nicht warum, aber der "react-native link" hat die Zeile "compile project(':react-native-onesignal')" nicht hinzugefügt. Ich habe es manuell gemacht und es funktioniert jetzt

Ein weiteres kleines Problem ist, dass die Link-Aktion jedes Mal die folgenden Zeilen hinzufügt

import com.geektime.rnonesignalandroid.ReactNativeOneSignalPackage;
new ReactNativeOneSignalPackage(),

Das Problem kann geschlossen werden

@Kisepro Ich kann dieses Problem nicht reproduzieren. In meinem Versuch habe ich ein komplett neues React-Native-Projekt erstellt und das React-Native-Onesignal-SDK gemäß den Anweisungen in der Readme manuell hinzugefügt.

Hast du die Anleitung in der Readme genau befolgt? Wenn nicht, wie hast du es gemacht?

@Nightsd01 Ja, ich habe es genau befolgt, und bei einem völlig neuen reaktiven Projekt funktioniert es auch für mich.

Es ist wirklich spezifisch für mein Projekt, denke ich, und ich habe es geschafft, es zum Laufen zu bringen, als ich verstand, warum, also sollten Sie meiner Meinung nach keine Zeit mit diesem Thema verlieren.

Ich vermute, dass dies an der Verknüpfung "react-native-push-notification" liegen könnte. Ich hatte einen anderen Konflikt mit diesem Paket wie dieser Kompilierungsanweisung

dependencies {
    compile ('com.google.android.gms:play-services-gcm:8.1.0') {
        force = true;
    }
...
}

Ich brauche dieses Paket nicht mehr, daher war es keine große Sache, es zu entfernen

Es freut mich zu hören, dass Ihr Problem damit gelöst ist.

Wir haben ein Onesignal-Grade-Plugin, das ähnliche Probleme lösen kann. Es muss oben in der App-Gradle-Datei platziert werden:

plugins {
    id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen