你好!
“反应原生”:“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);
}
在 iOS 上工作
不适用于安卓
@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)
但是没有没有玩家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.gradle
和app/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。
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.ReactHorizontalScrollViewManager 类生成的 setter
05-23 23:08:48.762 12785-13022/app.myapp W/ unknown:ViewManagerPropertyUpdater :找不到为 com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager 类生成的 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 true 或 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-native bundle
apply from: "../../node_modules/react-native/react.gradle"
行。项目.ext.react = [
条目文件:“index.js”
]
申请自:“../../node_modules/react-native/react.gradle”
/**
/**
安卓 {
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 true 或 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)
最有用的评论
我只用
react-native-onesignal:3.1.4
就解决了。 它使用以下方法初始化:就是这样。 如果您使用的是 react-native-navigation,则比从 JS 端进行操作要简单得多。