Umeng Push - litonghui/TechBlog GitHub Wiki

Android应用在接Umeng Push SDK 中遇到一个Toast 提示,遇到一个奔溃,具体如下:

一,PushSDK 3.0遇到Toast提示:mPushAgent.register should be called in both main process and channel process!

解决方案:PushSDK 3.0初始化时,需在Application类的onCreate中调用mPushAgent.register方法来进行注册。请勿在调用register方法时做进程判断处理,主进程和channel进程(推送进程)均需要调用register才能保证长连接的正确建立。

二,奔溃信息
E/AndroidRuntime( 5451): java.lang.RuntimeException: Unable to create application com.androidtool.Application: java.lang.NullPointerException: println needs a message

E/AndroidRuntime( 5451): 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4615)

E/AndroidRuntime( 5451): 	at android.app.ActivityThread.access$1800(ActivityThread.java:139)

E/AndroidRuntime( 5451): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1315)

E/AndroidRuntime( 5451): 	at android.os.Handler.dispatchMessage(Handler.java:102)

E/AndroidRuntime( 5451): 	at android.os.Looper.loop(Looper.java:136)

E/AndroidRuntime( 5451): 	at android.app.ActivityThread.main(ActivityThread.java:5294)

E/AndroidRuntime( 5451): 	at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime( 5451): 	at java.lang.reflect.Method.invoke(Method.java:515)

E/AndroidRuntime( 5451): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)

E/AndroidRuntime( 5451): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:680)

E/AndroidRuntime( 5451): 	at dalvik.system.NativeStart.main(Native Method)

E/AndroidRuntime( 5451): Caused by: java.lang.NullPointerException: println needs a message

E/AndroidRuntime( 5451): 	at android.util.Log.println_native(Native Method)

E/AndroidRuntime( 5451): 	at android.util.Log.e(Log.java:245)

E/AndroidRuntime( 5451): 	at com.umeng.message.a.a.b(UmLog.java:30)

E/AndroidRuntime( 5451): 	at com.umeng.message.h.u(PushAgent.java:159)

E/AndroidRuntime( 5451): 	at com.umeng.message.h.a(PushAgent.java:254)

E/AndroidRuntime( 5451): 	at com.androidtool.push.PushHandler.a(PushHandler.java:48)

解决方案:增加混淆配置

-dontwarn com.taobao.**
-dontwarn anet.channel.**
-dontwarn anetwork.channel.**
-dontwarn org.android.**
-dontwarn org.apache.thrift.**
-dontwarn com.xiaomi.**
-dontwarn com.huawei.**

-keepattributes *Annotation*

-keep class com.taobao.** {*;}
-keep class org.android.** {*;}
-keep class anet.channel.** {*;}
-keep class com.umeng.** {*;}
-keep class com.xiaomi.** {*;}
-keep class com.huawei.** {*;}
-keep class org.apache.thrift.** {*;}

-keep class com.alibaba.sdk.android.**{*;}
-keep class com.ut.**{*;}
-keep class com.ta.**{*;}

-keep public class **.R$*{
   public static final int *;
}