OneSignal:推送通知不起作用

问题描述

我有这个应用程序,我想从管理面板发送推送通知。我认为我一切正常,但是OneSignal仅在将其安装到模拟器中时才检测到我的应用程序,但是当我在手机上安装apk时,它却无法检测到。我有一个android 10手机。这是我的文件:

build.cradle(应用程序):

buildscript {
    repositories {
        maven { url 'https://plugins.gradle.org/m2/'}
    }
    dependencies {
        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.8,0.99.99]'
    }
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'

repositories {
    maven { url 'https://maven.google.com' }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId 'ga.nabukoapps.materialwallpaper'

        manifestPlaceholders = [onesignal_app_id: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",// Project number pulled from dashboard,local value is ignored.
                                onesignal_google_project_number: "REMOTE"]

        minSdkVersion 16
        targetSdkVersion 29
        versionCode 1
        versionName '1.0'
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }
    productFlavors {
    }
    useLibrary 'org.apache.http.legacy'
}

dependencies {
    implementation fileTree(include: ['*.jar'],dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.3.0'
    implementation 'com.google.android.ads.consent:consent-library:1.0.8'
    implementation 'com.balysv:material-ripple:1.0.2'
    //noinspection GradleDependency
    implementation 'com.onesignal:OneSignal:[3.15.0,3.99.99]'
    //implementation 'com.onesignal:OneSignal:3.11.2'
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
    implementation 'com.bogdwellers:pinchtozoom:0.1'
    implementation 'com.github.clans:fab:1.6.4'
    implementation 'com.karumi:dexter:4.2.0'
    implementation 'com.github.chrisbanes:PhotoView:2.1.4'
    implementation 'com.beloo.widget:ChipsLayoutManager:0.3.7@aar'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'commons-io:commons-io:2.4'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.google.firebase:firebase-analytics:17.5.0'

}

apply plugin: 'com.google.gms.google-services'

build.cradle(项目):

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath 'com.google.gms:google-services:4.3.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

解决方法

https://stackoverflow.com/a/39283454/8393749

我从未使用过OneSignal,但是出现此问题的原因之一是,推送所寻找的应用程序包名称是不同的。也许您可以专注于此。

在上面的链接中,有一部分build.gradle(应用程序级别)文件可作为参考。它提到将manifestApplicationId键和您的应用包名称添加为manifestPlaceholders区域中的值,如下所示:

release {
      defaultConfig {
         manifestPlaceholders = [manifestApplicationId          : "${applicationId}",onesignal_app_id               : "22222222-2222-2222-2222-222222222222",onesignal_google_project_number: "222222222"]
      }
   }

p.s。如果您不使用任何口味,也许您应该从代码中删除此部分:

productFlavors {
}
,

我知道使用 OneSignal 不会帮到您,但是在android中使用通知的最佳方法是使用 Firebase Cloud Messaging ,该文档已被很好地记录了下来。 google-services 兼容性,因为它属于Google。

设置Firebase Cloud Messaging将花费您几个小时。

,

回答自己。一切对我来说都做得很好,但是问题是我猜在手机里。我在某处读到,从Play商店安装应用程序不会有问题。另外,我的模拟器映像也不好。我安装了一个新的Pixel 3a,它工作正常。感谢所有尝试提供帮助的人。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...