React-native-onesignal: 错误:包 com.geektime.rnonesignalandroid 不存在

创建于 2018-03-19  ·  4评论  ·  资料来源: OneSignal/react-native-onesignal

你好,

我已经看到了这个问题的引用,我尝试了提出的解决方案,但它仍然对我不起作用。
安装时它正在处理一个空项目,但不能处理我的主项目,所以我想知道可能是什么问题?

但是我可以在 node_modules\react-native-onesignal\android\src\main\java\com\geektime\rnonesignalandroid 中找到正确的 com.geektime.rnonesignalandroid 包,所以我不明白为什么找不到它。

反应 16.0.0
反应原生 0.54.2

我的 MainApplication.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);
  }
}

我的节点模块中的 ReactNativeOneSignalPackage.java

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 {
...
}

最有用的评论

我不知道为什么,但是“react-native 链接”没有添加行“compile project(':react-native-onesignal')”我是手动完成的,现在可以正常工作了

另一个小问题是链接动作每次添加以下几行

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

问题可以关闭

所有4条评论

我不知道为什么,但是“react-native 链接”没有添加行“compile project(':react-native-onesignal')”我是手动完成的,现在可以正常工作了

另一个小问题是链接动作每次添加以下几行

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

问题可以关闭

@Kisepro我无法重现这个问题。 在我的尝试中,我创建了一个全新的 react-native 项目,并按照自述文件中的说明手动添加了 react-native-onesignal SDK。

您是否完全按照自述文件中的指导进行操作? 如果没有,你是怎么做到的?

@Nightsd01是的,我精确地遵循了它,并且在一个全新的 react-native 项目上进行了它,它也适用于我。

我认为这确实特定于我的项目,当我理解为什么时,我设法使它起作用,所以我想你不应该在这个问题上浪费时间。

我怀疑这可能是因为“react-native-push-notification”链接,我与这个包有另一个冲突,就像这个编译指令

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

我不再需要这个包了,所以删除它也没什么大不了的

我很高兴听到这解决了您的问题。

我们有一个信号等级插件,可以解决与此类似的问题。 它需要放置在App gradle文件的顶部

plugins {
    id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin
此页面是否有帮助?
0 / 5 - 0 等级