Android Parse安装保存后Parse deviceToken为空

Android Parse安装保存后Parse deviceToken为空,android,parse-platform,Android,Parse Platform,我正在开发一个应用程序,使用解析发送和接收通知。现在的问题是,当我注册一个安装设备时,deviceToken是空的(deviceType和installationId不是空的)。当此令牌为空时,我无法接收任何通知 如何注册安装: Parse.initialize(this, "x", "x"); ParseInstallation.getCurrentInstallation().saveInBackground(); 当我将所有用于解析的代码添加到我的app()中时,一切正常 My Andr

我正在开发一个应用程序,使用解析发送和接收通知。现在的问题是,当我注册一个安装设备时,deviceToken是空的(deviceType和installationId不是空的)。当此令牌为空时,我无法接收任何通知

如何注册安装:

Parse.initialize(this, "x", "x");
ParseInstallation.getCurrentInstallation().saveInBackground();
当我将所有用于解析的代码添加到我的app()中时,一切正常

My AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.xxx" >

    <uses-sdk android:maxSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <permission android:protectionLevel="signature"
        android:name="com.xxx.xxx.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.xxx.xxx.permission.C2D_MESSAGE" />

    <application
        android:name="com.xxx.xxx.Name_"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:logo="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker" />

        <activity
            android:name="com.xxx.xxx.Activities.SplashActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.LoginActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.ForgotPassword_"
            android:screenOrientation="portrait"
            android:label="@string/app_name">
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.MainActivity_"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.xxx.xxx.Activities.EditProfile_"
            android:screenOrientation="portrait"
            android:label="@string/edit_profile" >
        </activity>

        <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
            </intent-filter>
        </receiver>
        <service android:name="com.google.android.gms.analytics.AnalyticsService"
            android:enabled="true"
            android:exported="false"/>

        <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name=".Receiver.MyPushBroadcastReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="com.xxx.xxx" />
            </intent-filter>
        </receiver>
    </application>

</manifest>


我刚刚创建了一个新的应用程序,在Parse中添加了Parse并删除了安装类/表,但仍然没有deviceToken。

我认为这是新的Parse SDK中的一个bug。我降级到1.9.0,现在一切正常


来源:

您是否在android清单中配置了所有标签?我的意思是:是的,我有。奇怪的是,当我第一次使用它时,它工作了,但从今天(或昨天)起,我就无法收到任何通知。就连我在Parse 1.9.3 Android上也面临着这个问题。我正在应用程序类中运行saveInBackground()。我第一次打开应用程序时,它会保存除deviceToken和pushType之外的所有详细信息。但当我关闭应用程序并再次打开它时,它会更新Parse安装类中的deviceToken和pushType。需要帮助@LucaIacoFixed in 1.9.4根据其发行说明()即使在1.10.1中仍然遇到相同的问题,因此降级似乎是目前唯一的选择?我在1.12.0中,我有许多安装没有deviceToken。我们怎样才能修复它?我们可以删除安装中的行吗?