React-native-onesignal: (Android) E/onesignal:无法初始化 OneSignal SDK,因为活动为 null tr​​ue 或 oneSignalInitDonefalse

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

你好!
“反应原生”:“0.55.3”,
"react-native-onesignal": "^3.2.3",

应用程序.js

componentWillMount() {
    OneSignal.init('bddacd3f-7812-4a29-b038-.................');
    OneSignal.addEventListener('received', this.onReceived);
    OneSignal.addEventListener('opened', this.onOpened);
    OneSignal.addEventListener('ids', this.onIds);
}



onReceived(notification) {
        console.log("Notification received: ", notification);
    }

    onOpened(openResult) {
      console.log('Message: ', openResult.notification.payload.body);
      console.log('Data: ', openResult.notification.payload.additionalData);
      console.log('isActive: ', openResult.notification.isAppInFocus);
      console.log('openResult: ', openResult);
    }



    onIds(device) {
        console.log('Device info: ', device);
   }
  1. 在 iOS 上工作

  2. 不适用于安卓

最有用的评论

我只用react-native-onesignal:3.1.4就解决了。 它使用以下方法初始化:

defaultConfig {
        applicationId "APP_ID"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        manifestPlaceholders = [onesignal_app_id: "YOUR_ONESIGNAL_ID",
                                onesignal_google_project_number: "REMOTE"]
    }

就是这样。 如果您使用的是 react-native-navigation,则比从 JS 端进行操作要简单得多。

所有30条评论

1

@aspidvip能否提供更多详细信息? 此错误是否会引发异常并崩溃,还是只是不起作用(没有玩家 ID、无法接收推送通知等)? 有什么症状?

我也有这个问题。 我认为这是因为 react-native-navigation。 它在应用程序启动后立即启动另一个活动。 如果您同时调用OneSignal.init() ,它会说该活动为空 - 您遇到的错误。

如果您在调用OneSignal.init()之前等待几秒钟,它会起作用,但是您会收到另一个错误。 FirebaseApp 未初始化的那个。 问题 #515。 也希望对此进行修复或解决方法...

我只用react-native-onesignal:3.1.4就解决了。 它使用以下方法初始化:

defaultConfig {
        applicationId "APP_ID"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        manifestPlaceholders = [onesignal_app_id: "YOUR_ONESIGNAL_ID",
                                onesignal_google_project_number: "REMOTE"]
    }

就是这样。 如果您使用的是 react-native-navigation,则比从 JS 端进行操作要简单得多。

没有玩家ID,无法接收推送通知!

@urbancvek同样的初始化技术(使用 AppDelegate for iOS 和 gradle for Android)也适用于 3.2.3

@aspidvip这是一个非常广泛的问题,它可以是任何东西。 这可能是 react-native-navigation 和 OneSignal 初始化时间的问题

我做了

componentDidMount(){
    setTimeout(()=>{
      OneSignal.init('bddacd3f-7812-4a29-b038-ebf844c9826d');
    },5000);
}

E/OneSignal: The included Android Support Library is to old or incomplete. Please update to the 26.0.0 revision or newer.
D/FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)
I/zygote: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk"],nativeLibraryDirectories=[/data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/lib/x86, /data/app/com.publikun-tQvVeGt0XjzJehSUmUpCQw==/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/zygote:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
I/zygote:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/zygote:     at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
I/zygote:     at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
I/zygote:     at void java.lang.Thread.run() (Thread.java:764)

1

但是没有没有玩家ID,无法接收推送通知!

@aspidvip你能发布你的build.gradle吗? 这肯定是一个依赖问题。

此外,您可以尝试进入react-native-onesignal/build.gradle文件并将 OneSignal android SDK 更新到 3.9.1

plugins {
        id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'


apply plugin: "com.android.application"
import com.android.build.OutputFile

/**
 * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
 * and bundleReleaseJsAndAssets).
 * These basically call `react-native bundle` with the correct arguments during the Android build
 * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
 * bundle directly from the development server. Below you can see all the possible configurations
 * and their defaults. If you decide to add a configuration block, make sure to add it before the
 * `apply from: "../../node_modules/react-native/react.gradle"` line.
 *
 * project.ext.react = [
 *   // the name of the generated asset file containing your JS bundle
 *   bundleAssetName: "index.android.bundle",
 *
 *   // the entry file for bundle generation
 *   entryFile: "index.android.js",
 *
 *   // whether to bundle JS and assets in debug mode
 *   bundleInDebug: false,
 *
 *   // whether to bundle JS and assets in release mode
 *   bundleInRelease: true,
 *
 *   // whether to bundle JS and assets in another build variant (if configured).
 *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
 *   // The configuration property can be in the following formats
 *   //         'bundleIn${productFlavor}${buildType}'
 *   //         'bundleIn${buildType}'
 *   // bundleInFreeDebug: true,
 *   // bundleInPaidRelease: true,
 *   // bundleInBeta: true,
 *
 *   // whether to disable dev mode in custom build variants (by default only disabled in release)
 *   // for example: to disable dev mode in the staging build type (if configured)
 *   devDisabledInStaging: true,
 *   // The configuration property can be in the following formats
 *   //         'devDisabledIn${productFlavor}${buildType}'
 *   //         'devDisabledIn${buildType}'
 *
 *   // the root of your project, i.e. where "package.json" lives
 *   root: "../../",
 *
 *   // where to put the JS bundle asset in debug mode
 *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
 *
 *   // where to put the JS bundle asset in release mode
 *   jsBundleDirRelease: "$buildDir/intermediates/assets/release",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in debug mode
 *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
 *
 *   // where to put drawable resources / React Native assets, e.g. the ones you use via
 *   // require('./image.png')), in release mode
 *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
 *
 *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means
 *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
 *   // date; if you have any other folders that you want to ignore for performance reasons (gradle
 *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
 *   // for example, you might want to remove it from here.
 *   inputExcludes: ["android/**", "ios/**"],
 *
 *   // override which node gets called and with what additional arguments
 *   nodeExecutableAndArgs: ["node"],
 *
 *   // supply additional arguments to the packager
 *   extraPackagerArgs: []
 * ]
 */

project.ext.vectoricons = [
        iconFontNames: [ 'MaterialIcons.ttf', 'EvilIcons.ttf', 'MaterialCommunityIcons.ttf', 'Ionicons.ttf' ] // Name of the font files you want to copy
]

apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"





apply plugin: 'com.android.application'


project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../node_modules/react-native/react.gradle"

/**
 * Set this to true to create two separate APKs instead of one:
 *   - An APK that only works on ARM devices
 *   - An APK that only works on x86 devices
 * The advantage is the size of the APK is reduced by about 4MB.
 * Upload all the APKs to the Play Store and people will download
 * the correct one based on the CPU architecture of their device.
 */
def enableSeparateBuildPerCPUArchitecture = true

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        applicationId "com.nameproject"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true 
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
        /*manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
                                onesignal_google_project_number: "712648705913"]*/
        manifestPlaceholders = [onesignal_app_id: "bddacd3f-7812-4a29-b038-ebf844c9826d",
                                onesignal_google_project_number: "712648705914"]
    }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk true  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }
}

dependencies {
    compile project(':react-native-onesignal')
    compile project(':react-native-contacts')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile project(':react-native-navigation')
    compile project(':react-native-vector-icons')
    compile project(':react-native-fetch-blob')
    compile project(':react-native-photo-view')
    compile project(':react-native-i18n')
    compile project(':react-native-sqlite-storage')
    compile project(':react-native-linear-gradient')
    compile project(':react-native-image-crop-picker')
    compile project(':react-native-sound')
    compile project(':react-native-open-settings')

}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}

@aspidvip这意味着react-native-onesignal/build.gradleapp/build.gradle中的 Android API 级别可能不匹配。 我建议将您的应用程序的 API 级别更改为:

    compileSdkVersion 23
    buildToolsVersion "23.0.1"

最重要的是它们匹配。 您也可以直接进入react-native-onesignal/build.gradle并将其更改为您想要的。

匹配 build.gradle 文件没有修复它

@hamadasamir85我不知道你的环境是什么样的,你正在使用什么依赖,等等。 到目前为止 aspidvip 是唯一发布他们的 build.gradle 和其他详细信息的人。 这是一个广泛的问题,可能有许多潜在的原因。 请发布一些我问过 aspidvip 的相同细节。

@aspidvip如果匹配版本有效/

坦率地说,如果您可以发送一个重现此问题的演示项目,那将非常有帮助。

同样的问题:

在一个新鲜的反应原生项目上

包.json

````{
"name": "myapp",
“版本”:“0.0.1”,
“私人”:真的,
“脚本”:{
"start": "node node_modules/react-native/local-cli/cli.js start",
“测试”:“开玩笑”
},
“依赖关系”:{
“反应”:“16.3.1”,
“反应原生”:“0.55.4”,
"react-native-onesignal": "^3.2.4"
},
“开发依赖”:{
"babel-jest": "22.4.4",
"babel-preset-react-native": "4.0.0",
"jest": "22.4.4",
“反应测试渲染器”:“16.3.1”
},
“开玩笑”:{
“预设”:“反应原生”
}
}

````

日志猫

````
05-23 23:08:46.555 12785-12785/? E/合子:v2
05-23 23:08:46.555 12785-12785/? I/libpersona:KNOX_SDCARD 检查 10304
KNOX_SDCARD 不是角色
05-23 23:08:46.557 12785-12785/? E/合子:访问信息:0
05-23 23:08:46.558 12785-12785/? W/SELinux: SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u :r : zygote :s0 SPD:SEPF_SECMOBILE_7.0_0006 RAM:SEPF_SECMOBILE_7.0_0009 , [-1 -1 -9 -1 0 1]
05-23 23:08:46.561 12785-12785/? I/SELinux: SELinux: seapp_context_lookup: seinfo=untrusted, level=s0:c512,c768, pkgname=app.myapp
05-23 23:08:46.569 12785-12785/? I/art:后期启用 - Xcheck:jni
05-23 23:08:46.623 12785-12785/? D/TimaKeyStoreProvider:TimaSignature 不可用
05-23 23:08:46.624 12785-12785/? D/ActivityThread:添加了 TimaKeyStore 提供程序
05-23 23:08:46.735 12785-12785/app.myapp D/ContextRelationMgrBrdg: loadKlass() : caller=com.samsung.android.bridge.multiscreen.common.ContextRelationManagerBridge。:28 android.app.LoadedApk.makeAp plication:840
05-23 23:08:46.748 12785-12785/app.myapp I/FirebaseInitProvider:FirebaseApp 初始化不成功
05-23 23:08:46.753 12785-12785/app.myapp V/fb-UnpackingSoSource:锁定dso存储/data/user/0/app.myapp/lib-main
05-23 23:08:46.756 12785-12785/app.myapp V/fb-UnpackingSoSource:deps 商店中的 deps 不匹配:再生
所以存储脏:再生
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource:不允许考虑 lib/armeabi-v7a/libfb.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libfolly_json.so:推迟到 libdir
05-23 23:08:46.817 12785-12785/app.myapp D/ApkSoSource:不允许考虑 lib/armeabi-v7a/libglog.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libglog_init.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libgnustl_shared.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libicu_common.so:遵从 libdir
05-23 23:08:46.818 12785-12785/app.myapp D/ApkSoSource:不允许考虑 lib/armeabi-v7a/libimagepipeline.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libjsc.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libprivatedata.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libreactnativejni.so:推迟到 libdir
不允许考虑 lib/armeabi-v7a/libyoga.so:推迟到 libdir
05-23 23:08:46.818 12785-12785/app.myapp V/fb-UnpackingSoSource:重新生成 DSO 存储 com.facebook.soloader.ApkSoSource
05-23 23:08:46.819 12785-12785/app.myapp V/fb-UnpackingSoSource:启动同步工作者
05-23 23:08:46.836 12785-12785/app.myapp V/fb-UnpackingSoSource:释放/data/user/0/app.myapp/lib-main的dso存储锁(来自同步线程)
不释放 /data/user/0/app.myapp/lib-main 的 dso 存储锁(同步线程已启动)
05-23 23:08:46.914 12785-12785/app.myapp D/ReactNative:ReactInstanceManager.ctor()
05-23 23:08:46.936 12785-12785/app.myapp D/NetworkSecurityConfig:未指定网络安全配置,使用平台默认值
05-23 23:08:46.988 12785-12785/app.myapp D/SensorManager: registerListener::0, K6DS3TR 加速度传感器, 66667, 0,
05-23 23:08:47.027 12785-12785/app.myapp D/ReactNative:ReactInstanceManager.createReactContextInBackground()
ReactInstanceManager.recreateReactContextInBackgroundInner()
05-23 23:08:47.066 12785-12851/app.myapp W/ unknown:InspectorPackagerConnection :无法连接到打包程序,将静默重试
05-23 23:08:47.117 12785-12785/app.myapp D/InputTransport:输入通道构建:fd=65
05-23 23:08:47.118 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]:setView = DecorView@40d2e6a [MainActivity] touchMode=true
05-23 23:08:47.125 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:08:47.145 12785-12785/app.myapp D/SensorManager: registerListener :: 0, K6DS3TR 加速度传感器, 66667, 0,
05-23 23:08:47.207 12785-12853/app.myapp I/OpenGLRenderer:初始化 EGL,版本 1.4
05-23 23:08:47.207 12785-12853/app.myapp D/OpenGLRenderer:交换行为 1
05-23 23:08:47.229 12785-12853/app.myapp D/libGLESv1:STS_GLApi:包不允许使用 DTS:app.myapp
05-23 23:08:47.232 12785-12853 / app.myapp d / mali_winsys:EGLint new_window_surface(egl_winsys_display,空隙,EGLSurface,一个EGLConfig,egl_winsys_surface,egl_color_buffer_format,EGLBoolean)返回0x3000处,[1440x2560] -格式:105-23 23:08:47.255 12785-12785/app.myapp D/InputTransport:输入通道构建:fd=7105-23 23:08:47.255 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: setView = android.widget.PopupWindow$PopupDecorView{3423... ... VE..一世。


格式:1
05-23 23:08:47.550 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0, , 0) 或=1
05-23 23:08:48.641 12785-12785/app.myapp D/ ViewRootImpl@5c120c2 [Po pupWindow:2eda90d ]:dispatchDetachedFromWindow
05-23 23:08:48.670 12785-12785/app.myapp D/InputTransport:输入通道被破坏:fd=71
05-23 23:08:48.671 12785-12785/app.myapp D/ReactNative:ReactInstanceManager.onJSBundleLoadedFromServer()
05-23 23:08:48.672 12785-12785/app.myapp D/ReactNative:ReactInstanceManager.recreateReactContextInBackground()
05-23 23:08:48.673 12785-12785/app.myapp D/ReactNative:ReactInstanceManager.runCreateReactContextOnNewThread()
05-23 23:08:48.697 12785-13022/app.myapp I/art: 线程 [25,tid=13022,Native,Thread*=0xdeac1600,peer=0x12cdf5e0,"Thread-5"] 递归尝试加载库/data/app/app.myapp-2/lib/arm/libfb.so"
05-23 23:08:48.699 12785-13022/app.myapp D/ReactNative:ReactInstanceManager.createReactContext()
05-23 23:08:48.711 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTGroupViewManager 类生成的 setter
05-23 23:08:48.713 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTGroupShadowNode 类生成的 setter
05-23 23:08:48.717 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTShapeViewManager 类生成的 setter
找不到为 com.facebook.react.views.art.ARTShapeShadowNode 类生成的 setter
05-23 23:08:48.720 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTTextViewManager 类生成的 setter
找不到为 com.facebook.react.views.art.ARTTextShadowNode 类生成的 setter
05-23 23:08:48.722 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.checkbox.ReactCheckBoxManager 类生成的 setter
05-23 23:08:48.729 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.uimanager.LayoutShadowNode 类生成的 setter
05-23 23:08:48.740 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.picker.ReactDialogPickerManager 类生成的 setter
05-23 23:08:48.744 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.drawer.ReactDrawerLayoutManager 类生成的 setter
05-23 23:08:48.749 12785-13022/app.myapp W/未知:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.picker.ReactDropdownPickerManager 类生成的 setter
05-23 23:08:48.750 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.scroll.ReactHorizo​​ntalScrollViewManager 类生成的 setter
05-23 23:08:48.762 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.scroll.ReactHorizo​​ntalScrollContainerViewManager 类生成的 setter
05-23 23:08:48.764 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.progressbar.ReactProgressBarViewManager 类生成的 setter
05-23 23:08:48.767 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.progressbar.ProgressBarShadowNode 类生成的 setter
05-23 23:08:48.769 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.scroll.ReactScrollViewManager 类生成的 setter
05-23 23:08:48.776 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.slider.ReactSliderManager 类生成的 setter
05-23 23:08:48.780 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.slider.ReactSliderManager$ReactSliderShadowNode 类生成的 setter
05-23 23:08:48.781 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.switchview.ReactSwitchManager 类生成的 setter
05-23 23:08:48.784 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode 类生成的 setter
05-23 23:08:48.785 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.toolbar.ReactToolbarManager 类生成的 setter
05-23 23:08:48.791 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.webview.ReactWebViewManager 类生成的 setter
05-23 23:08:48.797 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.swiperrefresh.SwipeRefreshLayoutManager 类生成的 setter
05-23 23:08:48.802 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTSurfaceViewManager 类生成的 setter
05-23 23:08:48.803 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.art.ARTSurfaceViewShadowNode 类生成的 setter
05-23 23:08:48.804 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager 类生成的 setter
05-23 23:08:48.805 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode 类生成的 setter
05-23 23:08:48.807 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.image.ReactImageManager 类生成的 setter
05-23 23:08:48.814 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.modal.ReactModalHostManager 类生成的 setter
05-23 23:08:48.817 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.modal.ModalHostShadowNode 类生成的 setter
05-23 23:08:48.818 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.ReactRawTextManager 类生成的 setter
05-23 23:08:48.820 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.ReactRawTextShadowNode 类生成的 setter
05-23 23:08:48.822 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.textinput.ReactTextInputManager 类生成的 setter
05-23 23:08:48.835 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.textinput.ReactTextInputShadowNode 类生成的 setter
05-23 23:08:48.841 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.ReactTextViewManager 类生成的 setter
05-23 23:08:48.847 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.ReactTextShadowNode 类生成的 setter
05-23 23:08:48.848 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.view.ReactViewManager 类生成的 setter
05-23 23:08:48.857 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.viewpager.ReactViewPagerManager 类生成的 setter
05-23 23:08:48.862 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.text.ReactVirtualTextViewManager 类生成的 setter
找不到为 com.facebook.react.views.text.ReactVirtualTextShadowNode 类生成的 setter
05-23 23:08:48.885 12785-13022/app.myapp D/ReactNative:初始化 React Xplat Bridge。
05-23 23:08:48.890 12785-13022/app.myapp D/ReactNative:在 initializeBridge 之前初始化 React Xplat Bridge
05-23 23:08:48.905 12785-13022/app.myapp D/ReactNative:在 initializeBridge 之后初始化 React Xplat Bridge
CatalystInstanceImpl.runJSBundle()
05-23 23:08:48.906 12785-13054/app.myapp D/ReactNative:ReactInstanceManager.setupReactContext()
CatalystInstanceImpl.initialize()
05-23 23:08:48.907 12785-13054/app.myapp D/ReactNative:ReactInstanceManager.attachRootViewToInstance()
05-23 23:08:48.907 12785-12785/app.myapp W/ unknown:ReactNative :Packager 连接已经打开,nooping。
05-23 23:08:49.512 12785-13054/app.myapp I/WebViewFactory:正在加载 com.android.chrome 版本 66.0.3359.158(代码 335915852)
05-23 23:08:49.675 12785-13054/app.myapp I/cr_LibraryLoader:加载本机库的时间:13 毫秒(时间戳 3227-3240)
05-23 23:08:49.704 12785-13054/app.myapp I/chromium:[ INFO:library_loader_hooks.cc (36)] Chromium 日志记录已启用:级别 = 0,默认详细级别 = 0
05-23 23:08:49.705 12785-13054/app.myapp I/cr_LibraryLoader:预期本机库版本号“66.0.3359.158”,实际本机库版本号“66.0.3359.158”
05-23 23:08:49.994 12785-13053/app.myapp I/ReactNativeJS:使用 appParams 运行应用程序“myapp”:{“rootTag”:1}。 __DEV__ === true,开发级警告开启,性能优化关闭
05-23 23:08:50.096 12785-13054/app.myapp E/onesignal:无法初始化 OneSignal SDK,因为活动为 null tr​​ue 或 oneSignalInitDonefalse
05-23 23:09:03.299 12785-12798/app.myapp I/art:后台粘性并发标记清除 GC 释放 22289(2MB) 个 AllocSpace 对象,21(484KB) 个 LOS 对象,15% 空闲,16MB/19MB,暂停 9总计 119.769ms
05-23 23:09:21.462 12785-12785/app.myapp W/ unknown:ReactNative :Packager 连接已经打开,nooping。
05-23 23:09:21.618 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0)或=1
05-23 23:09:21.856 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED: ci=Rect(0, 84 - 0, 0) vi=Rect(0, 84 - 0, 0)或=1
05-23 23:09:21.894 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]:MSG_WINDOW_FOCUS_CHANGED 1
05-23 23:09:21.904 12785-12785/app.myapp V/InputMethodManager:开始输入:tba=android.view.inputmethod。 EditorInfo@95c25a2 nm : app.myapp ic=null
05-23 23:09:21.904 12785-12785/app.myapp I/InputMethodManager:[IMM] startInputInner-mService.startInputOrWindowGainedFocus
05-23 23:09:22.052 12785-12799/app.myapp D/InputTransport:输入通道构建:fd=86
05-23 23:09:22.053 12785-12785/app.myapp V/InputMethodManager:开始输入:tba=android.view.inputmethod。 EditorInfo@dcef9f0 nm : app.myapp ic=null
05-23 23:09:23.373 12785-12791/app.myapp I/art:做部分代码缓存收集,代码=30KB,数据=30KB
05-23 23:09:23.374 12785-12791/app.myapp I/art:代码缓存收集后,代码=30KB,数据=30KB
将代码缓存容量增加到 128KB
05-23 23:09:51.860 12785-12785/app.myapp V/InputMethodManager:开始输入:tba=android.view.inputmethod。 EditorInfo@642c97f nm : app.myapp ic=null
05-23 23:09:51.861 12785-12785/app.myapp I/InputMethodManager:[IMM] startInputInner-mService.startInputOrWindowGainedFocus
05-23 23:09:51.871 12785-12785/app.myapp D/InputTransport:输入通道构建:fd=83
输入通道被破坏:fd=86
05-23 23:09:52.285 12785-12785/app.myapp D/SensorManager: unregisterListener ::
05-23 23:09:52.726 12785-12785/app.myapp V/InputMethodManager:开始输入:tba=android.view.inputmethod。 EditorInfo@dc47e9b nm:app.myapp ic=null
05-23 23:09:52.726 12785-12785/app.myapp I/InputMethodManager:[IMM] startInputInner-mService.startInputOrWindowGainedFocus
05-23 23:09:52.727 12785-12785/app.myapp D/InputTransport:输入通道被破坏:fd=83
05-23 23:09:52.807 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0)或=1
05-23 23:09:52.888 12785-12785/app.myapp D/ ViewRootImpl@5e04455 [MainActivity]:MSG_WINDOW_FOCUS_CHANGED 0
05-23 23:13:47.153 12785-12798/app.myapp I/art:后台部分并发标记清除 GC 释放 60244(2MB) 个 AllocSpace 对象,9(3MB) 个 LOS 对象,40% 空闲,12MB/21MB,暂停 764us总计 105.326ms

````

应用程序.js

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * <strong i="7">@flow</strong>
 */

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';
import OneSignal from 'react-native-onesignal';



const instructions = Platform.select({
  ios: 'Press Cmd+R to reload...,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

type Props = {};
export default class App extends Component<Props> {

    componentWillMount() {
        OneSignal.init("1c25f475-8b98-487d-8358-b3934f9bff64");
        OneSignal.addEventListener('received', this.onReceived);
        OneSignal.addEventListener('opened', this.onOpened);
        OneSignal.addEventListener('ids', this.onIds);
    }

    componentWillUnmount() {
        OneSignal.removeEventListener('received', this.onReceived);
        OneSignal.removeEventListener('opened', this.onOpened);
    }
    onIds=(deviceId)=> {
        console.log('Device info: ', deviceId);
    }
    onReceived(notification) {
        console.log("Notification received: ", notification);
    }

    onOpened(openResult) {
        console.log('Message: ', openResult.notification.payload.body);
        console.log('Data: ', openResult.notification.payload.additionalData);
        console.log('isActive: ', openResult.notification.isAppInFocus);
        console.log('openResult: ', openResult);
    }

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});


构建.gradle

````
应用插件:“com.android.application”

导入 com.android.build.OutputFile

/**

  • react.gradle 文件为每个构建变体注册一个任务(例如 bundleDebugJsAndAssets
  • 和 bundleReleaseJsAndAssets)。
  • 这些基本上在 Android 构建期间使用正确的参数调用react-native bundle
  • 循环。 默认情况下, bundleDebugJsAndAssets 被跳过,因为在调试/开发模式下我们更喜欢加载
  • 直接从开发服务器捆绑。 您可以在下方看到所有可能的配置
  • 以及它们的默认值。 如果您决定添加配置块,请确保将其添加在
  • apply from: "../../node_modules/react-native/react.gradle"行。
    *
  • 项目.ext.react = [
  • // 生成的包含 JS 包的资产文件的名称
  • bundleAssetName: "index.android.bundle",
    *
  • // 生成包的入口文件
  • entryFile: "index.android.js",
    *
  • // 是否在调试模式下捆绑 JS 和资产
  • bundleInDebug: 假,
    *
  • // 是否在release模式下捆绑JS和assets
  • bundleInRelease: 真,
    *
  • // 是否在另一个构建变体中捆绑 JS 和资产(如果已配置)。
  • // 参见http://tools.android.com/tech-docs/new-build-system/user-guide#TOC -Build-Variants
  • // 配置属性可以是以下格式
  • // 'bundleIn${productFlavor}${buildType}'
  • // 'bundleIn${buildType}'
  • // bundleInFreeDebug: true,
  • // bundleInPaidRelease: true,
  • // bundleInBeta: 真,
    *
  • // 是否在自定义构建变体中禁用开发模式(默认仅在发布中禁用)
  • // 例如:在暂存构建类型中禁用开发模式(如果已配置)
  • devDisabledInStaging: 真,
  • // 配置属性可以是以下格式
  • // 'devDisabledIn${productFlavor}${buildType}'
  • // 'devDisabledIn${buildType}'
    *
  • // 项目的根目录,即“package.json”所在的位置
  • 根: ”../../”,
    *
  • // 将 JS 包资产置于调试模式的位置
  • jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
    *
  • // 将 JS 包资产置于发布模式的位置
  • jsBundleDirRelease: "$buildDir/intermediates/assets/release",
    *
  • // 放置可绘制资源/React Native 资源的位置,例如您使用的资源
  • // require('./image.png')), 在调试模式
  • resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
    *
  • // 放置可绘制资源/React Native 资源的位置,例如您使用的资源
  • // require('./image.png')),处于发布模式
  • resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
    *
  • // 默认情况下,如果没有任何 JS 文件或资产更改,则跳过 gradle 任务; 这意味着
  • // 我们不查看 android/ 或 ios/ 中的文件来确定任务是否达到
  • // 日期; 如果您有任何其他出于性能原因想要忽略的文件夹(gradle
  • // 索引整个树),将它们添加到此处。 或者,如果您在 android/ 中有 JS 文件
  • // 例如,您可能希望从此处删除它。
  • inputExcludes: ["android/ ", "ios/ "],
    *
  • // 覆盖调用哪个节点以及使用哪些附加参数
  • nodeExecutableAndArgs: ["node"],
    *
  • // 为打包器提供额外的参数
  • extraPackagerArgs: []
  • ]
    */

项目.ext.react = [
条目文件:“index.js”
]

申请自:“../../node_modules/react-native/react.gradle”

/**

  • 将此设置为 true 以创建两个单独的 APK 而不是一个:

    • 仅适用于 ARM 设备的 APK


    • 仅适用于 x86 设备的 APK

  • 优点是APK的大小减少了约4MB。
  • 将所有 APK 上传到 Play 商店,人们就会下载
  • 正确的基于其设备的 CPU 架构。
    */
    def enableSeparateBuildPerCPUArchitecture = false

/**

  • 运行 Proguard 以缩小发布版本中的 Java 字节码。
    */
    def enableProguardInReleaseBuilds = false

安卓 {
compileSdkVersion 23
构建工具版本“23.0.1”

defaultConfig {
    applicationId "app.myapp"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

}

依赖{
编译项目(':react-native-onesignal')
编译文件树(目录:“libs”,包括:[“*.jar”])
编译“com.android。支持:程序兼容性-V7 :23.4.0”
编译 "com.facebook.react :react-native :+" // 从 node_modules
}

// 运行一次,以便能够使用 BUCK 运行应用程序
// 将所有编译依赖项放入文件夹 libs 以供 BUCK 使用
任务 copyDownloadableDepsToLibs(类型:复制){
从configuration.compile
进入“库”
}

````
顺便说一句,我为一个新项目加星,因为它不可能在现有项目上运行。

对于也遇到此问题的任何人来说,这通常是因为您的应用程序的特定导航堆栈。 它通常可以通过使用 SDK 的本机初始化来修复,如上面提到的

@cesarve77 @aspidvip你们中的任何一个都可以发布您的MainApplication.java吗?

是的,但我是 One 信号的新手,我找不到文档

2018-06-09 12:03 GMT+10:00 Brad Hesse通知@ github.com:

@urbancvek https://github.com/urbancvek请注意 SDK 仍然
支持原生初始化(不使用JS),不用去
回到 3.1.4。


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-395931945
或静音线程
https://github.com/notifications/unsubscribe-auth/ADyXp8VcHWtSuGuhqu6GAmhuwEAs28yJks5t6y0MgaJpZM4UFgCX
.

我稍后会做。

2018-06-12 11:19 GMT+10:00 Brad Hesse通知@ github.com:

@cesarve77 https://github.com/cesarve77 @aspidvip
https://github.com/aspidvip你们中的任何一个都可以发布你的
主应用程序.java?


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/geektimecoil/react-native-onesignal/issues/516#issuecomment-396435196
或静音线程
https://github.com/notifications/unsubscribe-auth/ADyXp85jPYJ5TPNv7xwQt_3CoZ-rNvsuks5t7xcSgaJpZM4UFgCX
.

我尝试更新并使用新自述文件中的新说明。 经过一些尝试,我
最终决定切换回"react-native-onesignal": "3.0.7",并且一切都像以前一样。

我测试了 3.2.4、3.2.3 ......每次我都有问题。 所以我选择了我的另一个项目之一的版本。

要恢复我有旧的实现(本地端) https://github.com/geektimecoil/react-native-onesignal/blob/732491fece1fa92946ca6dacf173af28a2b2e618/README.md ,我在我的javascript代码中调用OneSignal.configure()一旦用户登录到应用程序,它就会在我的 mobx 商店中。

3.2.3 上的问题: Unable to initialize the OneSignal SDK because activity is null true or oneSignalInitDonefalse
3.2.4 上的问题: You must initialize OneSignal before getting tags! Moving this tag operation to a pending queue.

@nicovak这可能意味着您正在使用一些依赖项,如react-native-navigation (以及其他一些),导致传递给我们的 SDK auto 的初始活动为空。

我们正在为此寻求解决方案,同时,如果您遇到此特定问题,降级到 3.0.7 是个好主意。

@Nightsd01是的,我正在使用取决于react-navigation react-native-router-flux react-navigation ,经过一番搜索,我终于让它按预期工作。

我在 App.js(包含在 index.js 中)中声明了事件侦听器,这些侦听器用所需的值更新我的商店。 这样我就可以在需要时轻松调用函数。 在我的商店中声明事件侦听器之前。
如果有人有相同的情况,我会举一个代码示例。

当应用程序关闭时,我也遇到了一个小问题:我没有收到事件opened 。 它仅在应用程序处于后台时才有效,上面的代码一切正常。

在我的 App.js 中

import OneSignal from "react-native-onesignal";

OneSignal.configure({});
OneSignal.addEventListener("opened", openResult => {
  AppStore.handleOpenIfAppClosed(openResult);
});
OneSignal.addEventListener("ids", device => {
  AppStore.handleUserId(device);
});

<strong i="14">@observer</strong>
export default class App extends Component {

在我的店里

  handleOpenIfAppClosed(openResult) {
    this.pendingNotificationRequest = openResult;
  }

  handleUserId(device) {
    this.userId = device.userId;
  }

@nicovak您是如何解决主要问题的(活动为空)?

另外,对于opened问题...您确定您仍在使用react-native-onesignal的最新版本吗? 这是不久前修复的问题。

@Nightsd01我没有使用最新版本(3.0.7),这就是我修复活动为空问题的方式。
就像我说的那样:

3.2.3 问题:无法初始化 OneSignal SDK,因为活动为 null tr​​ue 或 oneSignalInitDonefalse

3.2.4 问题:您必须在获取标签之前初始化 OneSignal! 将此标记操作移至待处理队列。

@nicovak您可以在 3.2.4 中忽略该警告。 这意味着它所说的:您的应用程序在初始化完成之前以某种方式调用getTags() 。 然而,这只是一个警告,因为它仍然可以正常工作。

如果这是您在 3.2.4 中遇到的 _only_ 问题,我强烈建议您更新回 3.2.4,因为它修复了 3.0.7 中存在的许多问题。

@Nightsd01好的,谢谢,我明天用我的实际设置试试看👍

@Nightsd01我尝试再次更新到 3.2.4,但无法componentWillMount和外面,但没有任何效果。
我花了足够的时间抱歉,我会在下一个项目中尝试 ^3.2.4。

找出导致此问题的原因 @aspidvip @nicovak ,它已在新的 PR 中解决。 应该包含在今天或明天的版本中。

@Nightsd01 非常感谢你,你摇滚。 如果可用,我将在下周一对其进行升级和测试。

新的更新(3.2.5)已经发布! 如果其他人遇到类似问题,请在此处发帖,我们很乐意进行调查

我再次遇到0.56版本的 react native 的问题。
我必须在27吗? 文档说26应该可以工作,对吧?

    buildToolsVersion = "26.0.3"
    minSdkVersion = 16
    compileSdkVersion = 26
    targetSdkVersion = 26
    supportLibVersion = "26.1.0"
07-31 15:01:50.077 7068-7224/com.*************** I/art: Rejecting re-init on previously-failed class java.lang.Class<com.onesignal.OneSignalChromeTab$OneSignalCustomTabsServiceConnection>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/customtabs/CustomTabsServiceConnection;
        at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
        at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
        at void java.lang.Thread.run() (Thread.java:776)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsServiceConnection" on path: DexPathList[[zip file "/data/app/com..***************-2/base.apk"],nativeLibraryDirectories=[/data/app/com..***************-2/lib/arm, /data/app/com..***************-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib, /product/lib]]
        at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
        at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
        at void com.onesignal.OneSignalChromeTab.setup(android.content.Context, java.lang.String, java.lang.String, java.lang.String) (OneSignalChromeTab.java:46)
        at void com.onesignal.OneSignal$7.run() (OneSignal.java:1164)
        at void java.lang.Thread.run() (Thread.java:776)
此页面是否有帮助?
0 / 5 - 0 等级