我想實現GCM推送通知,我能夠實現GCM通知時,我的應用程序是運行或在後臺。但是,當應用程序是通過運行應用程序列表中我得到其中處理GCM通知和服務類的異常以下刷卡應用打死觸發通知到通知匣:
java.lang.NoClassDefFoundError: android.support.v4.app.NotificationCompatKitKat$Builder
下面是我的清單文件關於GCM
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.xxxxx.xxxxxx.xxxxx" />
</intent-filter>
</receiver>
<service
android:name=".services.GCMNotificationListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
下面是服務類GCMNotificationListenerService的onMessageRecieved方法:
@Override
public void onMessageReceived(String from,Bundle data){
Log.d(TAG, "In Receive Method of GCm Listener Service");
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("myKey","myValue");
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);
Context context = getBaseContext();
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher).setContentTitle("This is Title")
.setContentText("Body of the message").setContentIntent(pendingIntent);
NotificationManager mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(MESSAGE_NOTIFICATION_ID, mBuilder.build());
}
上述鱈魚當應用程序運行或在後臺運行時,e運行非常好,但同樣會拋出異常java.lang.NoClassDefFoundError:android.support.v4.app.NotificationCompatKitKat $ Builder當應用程序被終止。
我錯過了什麼嗎?請幫助。
這裏是我的build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
//apply plugin: 'com.google.gms.google-services'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.chromosis.wishhapp.wishhapp"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// workaround for "duplicate files during packaging of APK" issue
// see https://groups.google.com/d/msg/adt-dev/bl5Rc4Szpzg/wC8cylTWuIEJ
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
dexOptions {
javaMaxHeapSize "2g"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.3'
//compile 'com.couchbase.lite:couchbase-lite-android:1.0.3.1'
compile 'com.couchbase.lite:couchbase-lite-android:1.1.0'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.squareup.picasso:picasso:2.5.0'
compile 'it.neokree:MaterialTabs:0.11'
compile project(':citruslibrary')
compile 'com.soundcloud.android:android-crop:[email protected]'
compile 'xyz.danoz:recyclerviewfastscroller:0.1.3'
compile 'com.pkmmte.view:circularimageview:1.1'
compile 'com.android.support:palette-v7:21.0.+'
compile 'com.mcxiaoke.volley:library-aar:1.0.1'
compile 'com.appboy:android-sdk-ui:1.7.3'
compile 'com.android.support:design:22.2.0'
compile 'me.villani.lorenzo.android:android-cropimage:1.1.0'
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true;
}
compile 'com.amazonaws:aws-android-sdk-core:2.2.9'
compile 'com.amazonaws:aws-android-sdk-cognito:2.2.9'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.9'
compile 'com.amazonaws:aws-android-sdk-ddb:2.2.9'
compile 'com.android.support:multidex:1.0.0'
//compile 'com.google.android.gms:play-services-gcm:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.1.0'
}
您可以發佈您的build.gradle文件?謝謝 – AndroidEnthusiast