每当我运行它时,我的解析推送通知应用程序似乎都会崩溃。我仔细检查以确保权限是正确的,我的build.gradle也是正确的。我为Parse应用程序创建了一个Java类(我添加到src文件夹中)。以下是Parse应用程序,我的Android Manifest和build.gradle文件的代码。
BUILD.GRADLE文件
having
PARSEAPP.JAVA
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.anish.parseexample"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.3'
compile files('libs/Parse-1.9.2.jar')
}
的AndroidManifest.xml
package com.example.anish.parseexample;
import android.app.Application;
import com.parse.Parse;
import com.parse.PushService;
public class ParseApp extends Application {
@Override
public void onCreate() {
super.onCreate();
Parse.initialize(this, "APP_ID_KEY_WAS_HERE", "CLIENT_ID_KEY_WAS_HERE");
PushService.setDefaultPushCallback(this, MainActivity.class);
}
}
<?xml version="1.0" encoding="utf-8"?>
logcat的
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="ANDROID.PERMISSION.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2de.permission.RECEIVE"/>
<permission android:protectionLevel="signature" android:name="com.example.ani.parseexample.ParseApp.permission.C2D_MESSAGE"/>
<uses-permission android:name="com.example.ani.parseexample.ParseApp.permission.C2D_MESSAGE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name=".ParseApp">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<service android:name="com.parse.PushService"/>
<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.example.ani.parseexample.ParseApp"/>
</intent-filter>
</receiver>
</manifest>
如果logcat中缺少某些信息,请告诉我。我正在使用手机来运行应用程序,它会提供有关系统中其他正在运行的进程的许多错误消息。我已将Parse-1.9.2.jar文件夹转换为库,如果这有帮助的话。我也在https://parse.com/apps/quickstart#parse_push/android/native/existing尝试了解析示例,但这也没有奏效。有人可以帮忙吗?
此致
阿尼
答案 0 :(得分:0)
首先
<uses-permission android:name="com.google.android.c2de.permission.RECEIVE"/>
应该是:
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
c2dm
不是c2de
此外,在某些地方您使用的是com.example.anish
,而在其他地方则使用com.example.ani
。您应确保与清单/ gradle中定义的包一致。
在permission
,uses-permission
和广播接收器中,您应该保持一致。在您的情况下,您的设置应该更像:
<!-- lowercase these 2 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/
<!-- end lowercase -->
...
<permission android:protectionLevel="signature" android:name="com.example.anish.parseexample.permission.C2D_MESSAGE"/>
<uses-permission android:name="com.example.anish.parseexample.permission.C2D_MESSAGE"/>
...
<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.example.ani.parseexample"/>
</intent-filter>
</receiver>
我从未使用过parse.com,但上述内容是基于我对google cloud messaging setup的理解。