Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用android设置推送解析_Android_Parsing_Jar_Push - Fatal编程技术网

使用android设置推送解析

使用android设置推送解析,android,parsing,jar,push,Android,Parsing,Jar,Push,我只是试着用android设置推送解析,我想我做到了 解析信息页面上写的所有内容 这似乎是导致错误的原因: PushService.setDefaultPushCallback(这是ActivityAppLaunch.class) 这就是我所尝试的: 1. 2. 这是我的代码: ActivityAppLaunch.java ... import com.parse.Parse; import com.parse.ParseAnalytics; import com.parse.ParseIns

我只是试着用android设置推送解析,我想我做到了 解析信息页面上写的所有内容

这似乎是导致错误的原因:
PushService.setDefaultPushCallback(这是ActivityAppLaunch.class)

这就是我所尝试的: 1. 2.

这是我的代码:

ActivityAppLaunch.java

...
import com.parse.Parse;
import com.parse.ParseAnalytics;
import com.parse.ParseInstallation;
import com.parse.PushService;

public class ActivityAppLaunch extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // PARSE
    Parse.initialize(this, "XXX", "XXX");
    LINE THAT CAUSES FAIL: PushService.setDefaultPushCallback(this, ActivityAppLaunch.class);                    
    // PARSE END
...
Androidmanifest.xml

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

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET"/>
<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" />
<!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE".
-->
<permission android:protectionLevel="signature"
    android:name="com.pthuermer.juraquiz.permission.C2D_MESSAGE" />
<uses-permission android:name="com.pthuermer.juraquiz.permission.C2D_MESSAGE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.pthuermer.juraquiz.ActivityAppLaunch"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.pthuermer.juraquiz.ActivityQuiz"
        android:label="@string/title_activity_activity_quiz"
        android:screenOrientation="portrait" >
    </activity>

    <!-- PARSE -->
    <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="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" />
            <!--
              IMPORTANT: Change "com.parse.starter" to match your app's package name.
            -->
            <category android:name="com.pthuermer.juraquiz" />
        </intent-filter>
    </receiver>
    <!-- PARSE END -->

</application>
后跟>非常长的错误描述。顺便说一句,我的日志中没有任何内容

// Compiled from PushRouter.java (version 1.5 : 49.0, super bit)
class com.parse.PushRouter {

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String TAG = "com.parse.ParsePushRouter";

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String LEGACY_ROUTE_LOCATION = "persistentCallbacks";

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String STATE_LOCATION = "pushState";

  // Field descriptor #239 Ljava/util/concurrent/ExecutorService;
  private static final java.util.concurrent.ExecutorService EXECUTOR;

  // Field descriptor #234 Ljava/lang/String;
  public static final java.lang.String GCM_RECEIVE_ACTION = "com.google.android.c2dm.intent.RECEIVE";

  // Field descriptor #242 I
  static int MAX_HISTORY_LENGTH;

  // Field descriptor #244 Lcom/parse/Task;
  // Signature: Lcom/parse/Task<Ljava/lang/Void;>;
  private static com.parse.Task lastTask;

  // Field descriptor #248 Lcom/parse/PushRouter$PushListener;
  private static com.parse.PushRouter$PushListener pushListener;

  // Field descriptor #250 Lcom/parse/PushRouter;
  private static com.parse.PushRouter instance;

  // Field descriptor #234 Ljava/lang/String;
  private final java.lang.String stateLocation;

  // Field descriptor #253 Lcom/parse/PushRoutes;
  private final com.parse.PushRoutes routes;

  // Field descriptor #255 Lcom/parse/PushHistory;
  private final com.parse.PushHistory history;

  // Field descriptor #257 Ljava/util/concurrent/atomic/AtomicBoolean;
  private final java.util.concurrent.atomic.AtomicBoolean isRefreshingInstallation;

  // Method descriptor #259 (Ljava/lang/String;Ljava/lang/Class;I)Lcom/parse/Task;
  // Signature: (Ljava/lang/String;Ljava/lang/Class<+Landroid/app/Activity;>;I)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 6, Locals: 6
  public static com.parse.Task subscribeAsync(java.lang.String channel, java.lang.Class cls, int iconId);
      0  aload_0 [channel]
      1  ifnull 48
      4  aload_0 [channel]
      5  invokestatic com.parse.PushRoutes.isValidChannelName(java.lang.String) : boolean [4]
      8  ifne 48
     11  new java.lang.IllegalArgumentException [5]
     14  dup
     15  new java.lang.StringBuilder [6]
     18  dup
     19  invokespecial java.lang.StringBuilder() [7]
     22  ldc <String "Invalid channel name: + "> [8]
     24  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     27  aload_0 [channel]
     28  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     31  ldc <String " (must be empty "> [10]
     33  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     36  ldc <String "string or a letter followed by alphanumerics or hyphen)"> [11]
     38  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     41  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [12]
     44  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     47  athrow
     48  aload_1 [cls]
     49  ifnonnull 62
     52  new java.lang.IllegalArgumentException [5]
     55  dup
     56  ldc <String "Can't subscribe to channel with null activity class."> [14]
     58  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     61  athrow
     62  iload_2 [iconId]
     63  ifne 76
     66  new java.lang.IllegalArgumentException [5]
     69  dup
     70  ldc <String "Must subscribe to channel with a valid icon identifier."> [15]
     72  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     75  athrow
     76  aconst_null
     77  astore_3 [subscribeTask]
     78  ldc_w <Class com.parse.PushRouter> [16]
     81  dup
     82  astore 4
     84  monitorenter
     85  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
     88  new com.parse.PushRouter$1 [18]
     91  dup
     92  aload_0 [channel]
     93  aload_1 [cls]
     94  iload_2 [iconId]
     95  invokespecial com.parse.PushRouter$1(java.lang.String, java.lang.Class, int) [19]
     98  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    101  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    104  astore_3 [subscribeTask]
    105  aload_3 [subscribeTask]
    106  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    109  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    112  aload 4
    114  monitorexit
    115  goto 126
    118  astore 5
    120  aload 4
    122  monitorexit
    123  aload 5
    125  athrow
    126  aload_3 [subscribeTask]
    127  areturn
      Exception Table:
        [pc: 85, pc: 115] -> 118 when : any
        [pc: 118, pc: 123] -> 118 when : any
      Line numbers:
        [pc: 0, line: 57]
        [pc: 11, line: 58]
        [pc: 48, line: 60]
        [pc: 52, line: 61]
        [pc: 62, line: 62]
        [pc: 66, line: 63]
        [pc: 76, line: 66]
        [pc: 78, line: 68]
        [pc: 85, line: 69]
        [pc: 105, line: 77]
        [pc: 112, line: 78]
        [pc: 126, line: 80]
      Local variable table:
        [pc: 0, pc: 128] local: channel index: 0 type: java.lang.String
        [pc: 0, pc: 128] local: cls index: 1 type: java.lang.Class
        [pc: 0, pc: 128] local: iconId index: 2 type: int
        [pc: 78, pc: 128] local: subscribeTask index: 3 type: com.parse.Task
      Local variable type table:
        [pc: 0, pc: 128] local: cls index: 1 type: java.lang.Class<? extends android.app.Activity>
        [pc: 78, pc: 128] local: subscribeTask index: 3 type: com.parse.Task<java.lang.Void>

  // Method descriptor #272 (Ljava/lang/String;)Lcom/parse/Task;
  // Signature: (Ljava/lang/String;)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task unsubscribeAsync(java.lang.String channel);
     0  aconst_null
     1  astore_1 [unsubscribeTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$2 [24]
    14  dup
    15  aload_0 [channel]
    16  invokespecial com.parse.PushRouter$2(java.lang.String) [25]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    22  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    25  astore_1 [unsubscribeTask]
    26  aload_1 [unsubscribeTask]
    27  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    30  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    33  aload_2
    34  monitorexit
    35  goto 43
    38  astore_3
    39  aload_2
    40  monitorexit
    41  aload_3
    42  athrow
    43  aload_1 [unsubscribeTask]
    44  areturn
      Exception Table:
        [pc: 8, pc: 35] -> 38 when : any
        [pc: 38, pc: 41] -> 38 when : any
      Line numbers:
        [pc: 0, line: 88]
        [pc: 2, line: 90]
        [pc: 8, line: 91]
        [pc: 26, line: 99]
        [pc: 33, line: 100]
        [pc: 43, line: 102]
      Local variable table:
        [pc: 0, pc: 45] local: channel index: 0 type: java.lang.String
        [pc: 2, pc: 45] local: unsubscribeTask index: 1 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 45] local: unsubscribeTask index: 1 type: com.parse.Task<java.lang.Void>

  // Method descriptor #276 (Z)Lcom/parse/Task;
  // Signature: (Z)Lcom/parse/Task<Ljava/util/Set<Ljava/lang/String;>;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task getSubscriptionsAsync(boolean includeDefaultRoute);
     0  aconst_null
     1  astore_1 [getSubscriptionsTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$3 [26]
    14  dup
    15  iload_0 [includeDefaultRoute]
    16  invokespecial com.parse.PushRouter$3(boolean) [27]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    22  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    25  astore_1 [getSubscriptionsTask]
    26  aload_1 [getSubscriptionsTask]
    27  invokevirtual com.parse.Task.makeVoid() : com.parse.Task [28]
    30  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    33  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    36  aload_2
    37  monitorexit
    38  goto 46
    41  astore_3
    42  aload_2
    43  monitorexit
    44  aload_3
    45  athrow
    46  aload_1 [getSubscriptionsTask]
    47  areturn
      Exception Table:
        [pc: 8, pc: 38] -> 41 when : any
        [pc: 41, pc: 44] -> 41 when : any
      Line numbers:
        [pc: 0, line: 111]
        [pc: 2, line: 113]
        [pc: 8, line: 114]
        [pc: 26, line: 121]
        [pc: 36, line: 122]
        [pc: 46, line: 124]
      Local variable table:
        [pc: 0, pc: 48] local: includeDefaultRoute index: 0 type: boolean
        [pc: 2, pc: 48] local: getSubscriptionsTask index: 1 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 48] local: getSubscriptionsTask index: 1 type: com.parse.Task<java.util.Set<java.lang.String>>

  // Method descriptor #283 ()Lcom/parse/Task;
  // Signature: ()Lcom/parse/Task<Lorg/json/JSONObject;>;
  // Stack: 3, Locals: 3
  public static com.parse.Task getPushRequestJSONAsync();
     0  aconst_null
     1  astore_0 [getPushRequestTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_1
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$4 [29]
    14  dup
    15  invokespecial com.parse.PushRouter$4() [30]
    18  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    21  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    24  astore_0 [getPushRequestTask]
    25  aload_0 [getPushRequestTask]
    26  invokevirtual com.parse.Task.makeVoid() : com.parse.Task [28]
    29  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    32  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    35  aload_1
    36  monitorexit
    37  goto 45
    40  astore_2
    41  aload_1
    42  monitorexit
    43  aload_2
    44  athrow
    45  aload_0 [getPushRequestTask]
    46  areturn
      Exception Table:
        [pc: 8, pc: 37] -> 40 when : any
        [pc: 40, pc: 43] -> 40 when : any
      Line numbers:
        [pc: 0, line: 131]
        [pc: 2, line: 133]
        [pc: 8, line: 134]
        [pc: 25, line: 141]
        [pc: 35, line: 142]
        [pc: 45, line: 144]
      Local variable table:
        [pc: 2, pc: 47] local: getPushRequestTask index: 0 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 47] local: getPushRequestTask index: 0 type: com.parse.Task<org.json.JSONObject>

  // Method descriptor #288 (Landroid/content/Intent;)Z
  // Stack: 2, Locals: 1
  public static boolean isGcmPushIntent(android.content.Intent intent);
     0  aload_0 [intent]
     1  ifnull 20
     4  ldc <String "com.google.android.c2dm.intent.RECEIVE"> [31]
     6  aload_0 [intent]
     7  invokevirtual android.content.Intent.getAction() : java.lang.String [32]
    10  invokevirtual java.lang.String.equals(java.lang.Object) : boolean [33]
    13  ifeq 20
    16  iconst_1
    17  goto 21
    20  iconst_0
    21  ireturn
      Line numbers:
        [pc: 0, line: 151]
      Local variable table:
        [pc: 0, pc: 22] local: intent index: 0 type: android.content.Intent

  // Method descriptor #292 (Landroid/content/Intent;)V
  // Stack: 5, Locals: 2
  public static void handleGcmPushIntent(android.content.Intent intent);
     0  new java.util.concurrent.Semaphore [34]
     3  dup
     4  iconst_0
     5  invokespecial java.util.concurrent.Semaphore(int) [35]
     8  astore_1 [done]
     9  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    12  new com.parse.PushRouter$5 [36]
    15  dup
    16  aload_0 [intent]
    17  aload_1 [done]
    18  invokespecial com.parse.PushRouter$5(android.content.Intent, java.util.concurrent.Semaphore) [37]
    21  invokeinterface java.util.concurrent.ExecutorService.submit(java.lang.Runnable) : java.util.concurrent.Future [38] [nargs: 2]
    26  pop
    27  aload_1 [done]
    28  invokevirtual java.util.concurrent.Semaphore.acquireUninterruptibly() : void [39]
    31  return
      Line numbers:
        [pc: 0, line: 158]
        [pc: 9, line: 159]
        [pc: 27, line: 167]
        [pc: 31, line: 168]
      Local variable table:
        [pc: 0, pc: 32] local: intent index: 0 type: android.content.Intent
        [pc: 9, pc: 32] local: done index: 1 type: java.util.concurrent.Semaphore

  // Method descriptor #296 (Lorg/json/JSONObject;)Lcom/parse/Task;
  // Signature: (Lorg/json/JSONObject;)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task handlePpnsPushAsync(org.json.JSONObject pushPayload);
     0  aconst_null
     1  astore_1 [receivedPushTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$6 [40]
    14  dup
    15  aload_0 [pushPayload]
    16  invokespecial com.parse.PushRouter$6(org.json.JSONObject) [41]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]

...

     inner name: #231 HandlePushResult, accessflags: 16408 static final],
    [inner class info: #165 com/parse/PushRouter$10, outer class info: #0
     inner name: #0, accessflags: 0 default],
    [inner class info: #55 com/parse/PushRouter$9, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #45 com/parse/PushRouter$8, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #42 com/parse/PushRouter$7, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #40 com/parse/PushRouter$6, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #36 com/parse/PushRouter$5, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #29 com/parse/PushRouter$4, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #26 com/parse/PushRouter$3, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #24 com/parse/PushRouter$2, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #18 com/parse/PushRouter$1, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #143 com/parse/PushRoutes$Route, outer class info: #64 com/parse/PushRoutes
     inner name: #387 Route, accessflags: 25 public static final]
}
//从PushRouter.java(版本1.5:49.0,超级位)编译而成
类com.parse.PushRouter{
//字段描述符#234 Ljava/lang/String;
私有静态final java.lang.String标记=“com.parse.ParsePushRouter”;
//字段描述符#234 Ljava/lang/String;
private static final java.lang.String LEGACY_ROUTE_LOCATION=“persistentCallbacks”;
//字段描述符#234 Ljava/lang/String;
私有静态final java.lang.String STATE_LOCATION=“pushState”;
//字段描述符#239 Ljava/util/concurrent/ExecutorService;
私有静态最终java.util.concurrent.ExecutorService执行器;
//字段描述符#234 Ljava/lang/String;
public static final java.lang.String GCM_RECEIVE_ACTION=“com.google.android.c2dm.intent.RECEIVE”;
//字段描述符#242 I
静态整数最大历史长度;
//字段描述符#244 Lcom/parse/Task;
//签名:Lcom/parse/Task;
私有静态com.parse.Task lastTask;
//字段描述符#248 Lcom/parse/PushRouter$PushListener;
私有静态com.parse.PushRouter$PushListener PushListener;
//字段描述符#250 Lcom/parse/PushRouter;
私有静态com.parse.PushRouter实例;
//字段描述符#234 Ljava/lang/String;
private final java.lang.String stateLocation;
//字段描述符#253 Lcom/parse/PushRoutes;
私有最终com.parse.PushRoutes;
//字段描述符#255 Lcom/parse/PushHistory;
私有最终com.parse.PushHistory;
//字段描述符#257ljava/util/concurrent/AtomicBoolean;
私有最终java.util.concurrent.AtomicBoolean isRefreshingInstallation;
//方法描述符#259(Ljava/lang/String;Ljava/lang/Class;I)Lcom/parse/Task;
//签名:(Ljava/lang/String;Ljava/lang/Class;I)Lcom/parse/Task;
//堆栈:6,本地:6
public static com.parse.Task subscribeAsync(java.lang.String通道,java.lang.Class cls,int-iconId);
0 aload_0[频道]
1如果空48
4 aload_0[频道]
5 invokestatic com.parse.PushRoutes.isValidChannel名称(java.lang.String):布尔[4]
8 ifne 48
11新java.lang.IllegalArgumentException[5]
14次重复
15新java.lang.StringBuilder[6]
18次重复
19 invokespecial java.lang.StringBuilder()[7]
22最不发达国家[8]
24 invokevirtual java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder[9]
27 aload_0[频道]
28 invokevirtual java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder[9]
31最不发达国家[10]
33 invokevirtual java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder[9]
36最不发达国家[11]
38 invokevirtual java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder[9]
41 invokevirtual java.lang.StringBuilder.toString():java.lang.String[12]
44 invokespecial java.lang.IllegalArgumentException(java.lang.String)[13]
阿思罗47号
48 aload_1[cls]
49如果非空62
52新java.lang.IllegalArgumentException[5]
55次重复
56最不发达国家[14]
58 invokespecial java.lang.IllegalArgumentException(java.lang.String)[13]
阿思罗61号
62 iload_2[iconId]
63 ifne 76
66新java.lang.IllegalArgumentException[5]
69次重复
70最不发达国家[15]
72调用特殊的java.lang.IllegalArgumentException(java.lang.String)[13]
阿思罗街75号
76 A空
77 astore_3[订阅任务]
78土发公司西[16]
81次重复
82阿斯托尔4
84监视器中心
85 invokestatic com.parse.PushRouter.getLastTask():com.parse.Task[17]
88新com.parse.PushRouter$1[18]
91次重复
92 aload_0[频道]
93 aload_1[cls]
94 iload_2[iconId]
95 invokespecial com.parse.PushRouter$1(java.lang.String,java.lang.Class,int)[19]
98 getstatic com.parse.PushRouter.EXECUTOR:java.util.concurrent.ExecutorService[20]
101 invokevirtual com.parse.Task.onSuccess(com.parse.Continuation,java.util.concurrent.Executor):com.parse.Task[21]
104 astore_3[订阅任务]
105 aload_3[订阅任务]
106 invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task):com.parse.Task[22]
109 putstatic com.parse.PushRouter.lastTask:com.parse.Task[23]
112阿洛德4
114监测退出
115转到126
118阿斯托尔5号
120阿洛德4
122监测退出
123阿洛德5
阿思罗125号
126 aload_3[订阅任务]
反过来
例外情况表:
[pc:85,pc:115]->118何时:有
[pc:118,pc:123]->118何时:有
行号:
[个人计算机:0,第57行]
[个人电脑:11,第58行]
[个人计算机:48,第60行]
[个人电脑:52,第61行]
[个人计算机:62,第62行]
[个人电脑:66,第63行]
[个人电脑:76,第66行]
[个人电脑:78,第68行]
[个人计算机:85,第69行]
[个人电脑:105,第77行]
[个人电脑:112,第78行]
[个人计算机:126,第80行]
局部变量表:
[pc:0,pc:128]本地:通道索引:0类型:java.lang.String
[pc:0,pc:128]本地:cls索引:1类型:java.lang.Class
[pc:0,pc:128]本地:iconId索引:2类型:int
[pc:78,pc:128]本地:订阅任务索引:3类型:com.parse.Task
局部变量类型表:
[pc:0,pc:128]本地:cls索引:1类型:java.lang.Class
需要设置
在AndroidManifest.xml中,允许PushRouter访问

// Compiled from PushRouter.java (version 1.5 : 49.0, super bit)
class com.parse.PushRouter {

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String TAG = "com.parse.ParsePushRouter";

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String LEGACY_ROUTE_LOCATION = "persistentCallbacks";

  // Field descriptor #234 Ljava/lang/String;
  private static final java.lang.String STATE_LOCATION = "pushState";

  // Field descriptor #239 Ljava/util/concurrent/ExecutorService;
  private static final java.util.concurrent.ExecutorService EXECUTOR;

  // Field descriptor #234 Ljava/lang/String;
  public static final java.lang.String GCM_RECEIVE_ACTION = "com.google.android.c2dm.intent.RECEIVE";

  // Field descriptor #242 I
  static int MAX_HISTORY_LENGTH;

  // Field descriptor #244 Lcom/parse/Task;
  // Signature: Lcom/parse/Task<Ljava/lang/Void;>;
  private static com.parse.Task lastTask;

  // Field descriptor #248 Lcom/parse/PushRouter$PushListener;
  private static com.parse.PushRouter$PushListener pushListener;

  // Field descriptor #250 Lcom/parse/PushRouter;
  private static com.parse.PushRouter instance;

  // Field descriptor #234 Ljava/lang/String;
  private final java.lang.String stateLocation;

  // Field descriptor #253 Lcom/parse/PushRoutes;
  private final com.parse.PushRoutes routes;

  // Field descriptor #255 Lcom/parse/PushHistory;
  private final com.parse.PushHistory history;

  // Field descriptor #257 Ljava/util/concurrent/atomic/AtomicBoolean;
  private final java.util.concurrent.atomic.AtomicBoolean isRefreshingInstallation;

  // Method descriptor #259 (Ljava/lang/String;Ljava/lang/Class;I)Lcom/parse/Task;
  // Signature: (Ljava/lang/String;Ljava/lang/Class<+Landroid/app/Activity;>;I)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 6, Locals: 6
  public static com.parse.Task subscribeAsync(java.lang.String channel, java.lang.Class cls, int iconId);
      0  aload_0 [channel]
      1  ifnull 48
      4  aload_0 [channel]
      5  invokestatic com.parse.PushRoutes.isValidChannelName(java.lang.String) : boolean [4]
      8  ifne 48
     11  new java.lang.IllegalArgumentException [5]
     14  dup
     15  new java.lang.StringBuilder [6]
     18  dup
     19  invokespecial java.lang.StringBuilder() [7]
     22  ldc <String "Invalid channel name: + "> [8]
     24  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     27  aload_0 [channel]
     28  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     31  ldc <String " (must be empty "> [10]
     33  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     36  ldc <String "string or a letter followed by alphanumerics or hyphen)"> [11]
     38  invokevirtual java.lang.StringBuilder.append(java.lang.String) : java.lang.StringBuilder [9]
     41  invokevirtual java.lang.StringBuilder.toString() : java.lang.String [12]
     44  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     47  athrow
     48  aload_1 [cls]
     49  ifnonnull 62
     52  new java.lang.IllegalArgumentException [5]
     55  dup
     56  ldc <String "Can't subscribe to channel with null activity class."> [14]
     58  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     61  athrow
     62  iload_2 [iconId]
     63  ifne 76
     66  new java.lang.IllegalArgumentException [5]
     69  dup
     70  ldc <String "Must subscribe to channel with a valid icon identifier."> [15]
     72  invokespecial java.lang.IllegalArgumentException(java.lang.String) [13]
     75  athrow
     76  aconst_null
     77  astore_3 [subscribeTask]
     78  ldc_w <Class com.parse.PushRouter> [16]
     81  dup
     82  astore 4
     84  monitorenter
     85  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
     88  new com.parse.PushRouter$1 [18]
     91  dup
     92  aload_0 [channel]
     93  aload_1 [cls]
     94  iload_2 [iconId]
     95  invokespecial com.parse.PushRouter$1(java.lang.String, java.lang.Class, int) [19]
     98  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    101  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    104  astore_3 [subscribeTask]
    105  aload_3 [subscribeTask]
    106  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    109  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    112  aload 4
    114  monitorexit
    115  goto 126
    118  astore 5
    120  aload 4
    122  monitorexit
    123  aload 5
    125  athrow
    126  aload_3 [subscribeTask]
    127  areturn
      Exception Table:
        [pc: 85, pc: 115] -> 118 when : any
        [pc: 118, pc: 123] -> 118 when : any
      Line numbers:
        [pc: 0, line: 57]
        [pc: 11, line: 58]
        [pc: 48, line: 60]
        [pc: 52, line: 61]
        [pc: 62, line: 62]
        [pc: 66, line: 63]
        [pc: 76, line: 66]
        [pc: 78, line: 68]
        [pc: 85, line: 69]
        [pc: 105, line: 77]
        [pc: 112, line: 78]
        [pc: 126, line: 80]
      Local variable table:
        [pc: 0, pc: 128] local: channel index: 0 type: java.lang.String
        [pc: 0, pc: 128] local: cls index: 1 type: java.lang.Class
        [pc: 0, pc: 128] local: iconId index: 2 type: int
        [pc: 78, pc: 128] local: subscribeTask index: 3 type: com.parse.Task
      Local variable type table:
        [pc: 0, pc: 128] local: cls index: 1 type: java.lang.Class<? extends android.app.Activity>
        [pc: 78, pc: 128] local: subscribeTask index: 3 type: com.parse.Task<java.lang.Void>

  // Method descriptor #272 (Ljava/lang/String;)Lcom/parse/Task;
  // Signature: (Ljava/lang/String;)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task unsubscribeAsync(java.lang.String channel);
     0  aconst_null
     1  astore_1 [unsubscribeTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$2 [24]
    14  dup
    15  aload_0 [channel]
    16  invokespecial com.parse.PushRouter$2(java.lang.String) [25]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    22  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    25  astore_1 [unsubscribeTask]
    26  aload_1 [unsubscribeTask]
    27  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    30  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    33  aload_2
    34  monitorexit
    35  goto 43
    38  astore_3
    39  aload_2
    40  monitorexit
    41  aload_3
    42  athrow
    43  aload_1 [unsubscribeTask]
    44  areturn
      Exception Table:
        [pc: 8, pc: 35] -> 38 when : any
        [pc: 38, pc: 41] -> 38 when : any
      Line numbers:
        [pc: 0, line: 88]
        [pc: 2, line: 90]
        [pc: 8, line: 91]
        [pc: 26, line: 99]
        [pc: 33, line: 100]
        [pc: 43, line: 102]
      Local variable table:
        [pc: 0, pc: 45] local: channel index: 0 type: java.lang.String
        [pc: 2, pc: 45] local: unsubscribeTask index: 1 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 45] local: unsubscribeTask index: 1 type: com.parse.Task<java.lang.Void>

  // Method descriptor #276 (Z)Lcom/parse/Task;
  // Signature: (Z)Lcom/parse/Task<Ljava/util/Set<Ljava/lang/String;>;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task getSubscriptionsAsync(boolean includeDefaultRoute);
     0  aconst_null
     1  astore_1 [getSubscriptionsTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$3 [26]
    14  dup
    15  iload_0 [includeDefaultRoute]
    16  invokespecial com.parse.PushRouter$3(boolean) [27]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    22  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    25  astore_1 [getSubscriptionsTask]
    26  aload_1 [getSubscriptionsTask]
    27  invokevirtual com.parse.Task.makeVoid() : com.parse.Task [28]
    30  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    33  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    36  aload_2
    37  monitorexit
    38  goto 46
    41  astore_3
    42  aload_2
    43  monitorexit
    44  aload_3
    45  athrow
    46  aload_1 [getSubscriptionsTask]
    47  areturn
      Exception Table:
        [pc: 8, pc: 38] -> 41 when : any
        [pc: 41, pc: 44] -> 41 when : any
      Line numbers:
        [pc: 0, line: 111]
        [pc: 2, line: 113]
        [pc: 8, line: 114]
        [pc: 26, line: 121]
        [pc: 36, line: 122]
        [pc: 46, line: 124]
      Local variable table:
        [pc: 0, pc: 48] local: includeDefaultRoute index: 0 type: boolean
        [pc: 2, pc: 48] local: getSubscriptionsTask index: 1 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 48] local: getSubscriptionsTask index: 1 type: com.parse.Task<java.util.Set<java.lang.String>>

  // Method descriptor #283 ()Lcom/parse/Task;
  // Signature: ()Lcom/parse/Task<Lorg/json/JSONObject;>;
  // Stack: 3, Locals: 3
  public static com.parse.Task getPushRequestJSONAsync();
     0  aconst_null
     1  astore_0 [getPushRequestTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_1
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$4 [29]
    14  dup
    15  invokespecial com.parse.PushRouter$4() [30]
    18  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    21  invokevirtual com.parse.Task.onSuccess(com.parse.Continuation, java.util.concurrent.Executor) : com.parse.Task [21]
    24  astore_0 [getPushRequestTask]
    25  aload_0 [getPushRequestTask]
    26  invokevirtual com.parse.Task.makeVoid() : com.parse.Task [28]
    29  invokestatic com.parse.PushRouter.makeUnhandledExceptionsFatal(com.parse.Task) : com.parse.Task [22]
    32  putstatic com.parse.PushRouter.lastTask : com.parse.Task [23]
    35  aload_1
    36  monitorexit
    37  goto 45
    40  astore_2
    41  aload_1
    42  monitorexit
    43  aload_2
    44  athrow
    45  aload_0 [getPushRequestTask]
    46  areturn
      Exception Table:
        [pc: 8, pc: 37] -> 40 when : any
        [pc: 40, pc: 43] -> 40 when : any
      Line numbers:
        [pc: 0, line: 131]
        [pc: 2, line: 133]
        [pc: 8, line: 134]
        [pc: 25, line: 141]
        [pc: 35, line: 142]
        [pc: 45, line: 144]
      Local variable table:
        [pc: 2, pc: 47] local: getPushRequestTask index: 0 type: com.parse.Task
      Local variable type table:
        [pc: 2, pc: 47] local: getPushRequestTask index: 0 type: com.parse.Task<org.json.JSONObject>

  // Method descriptor #288 (Landroid/content/Intent;)Z
  // Stack: 2, Locals: 1
  public static boolean isGcmPushIntent(android.content.Intent intent);
     0  aload_0 [intent]
     1  ifnull 20
     4  ldc <String "com.google.android.c2dm.intent.RECEIVE"> [31]
     6  aload_0 [intent]
     7  invokevirtual android.content.Intent.getAction() : java.lang.String [32]
    10  invokevirtual java.lang.String.equals(java.lang.Object) : boolean [33]
    13  ifeq 20
    16  iconst_1
    17  goto 21
    20  iconst_0
    21  ireturn
      Line numbers:
        [pc: 0, line: 151]
      Local variable table:
        [pc: 0, pc: 22] local: intent index: 0 type: android.content.Intent

  // Method descriptor #292 (Landroid/content/Intent;)V
  // Stack: 5, Locals: 2
  public static void handleGcmPushIntent(android.content.Intent intent);
     0  new java.util.concurrent.Semaphore [34]
     3  dup
     4  iconst_0
     5  invokespecial java.util.concurrent.Semaphore(int) [35]
     8  astore_1 [done]
     9  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]
    12  new com.parse.PushRouter$5 [36]
    15  dup
    16  aload_0 [intent]
    17  aload_1 [done]
    18  invokespecial com.parse.PushRouter$5(android.content.Intent, java.util.concurrent.Semaphore) [37]
    21  invokeinterface java.util.concurrent.ExecutorService.submit(java.lang.Runnable) : java.util.concurrent.Future [38] [nargs: 2]
    26  pop
    27  aload_1 [done]
    28  invokevirtual java.util.concurrent.Semaphore.acquireUninterruptibly() : void [39]
    31  return
      Line numbers:
        [pc: 0, line: 158]
        [pc: 9, line: 159]
        [pc: 27, line: 167]
        [pc: 31, line: 168]
      Local variable table:
        [pc: 0, pc: 32] local: intent index: 0 type: android.content.Intent
        [pc: 9, pc: 32] local: done index: 1 type: java.util.concurrent.Semaphore

  // Method descriptor #296 (Lorg/json/JSONObject;)Lcom/parse/Task;
  // Signature: (Lorg/json/JSONObject;)Lcom/parse/Task<Ljava/lang/Void;>;
  // Stack: 4, Locals: 4
  public static com.parse.Task handlePpnsPushAsync(org.json.JSONObject pushPayload);
     0  aconst_null
     1  astore_1 [receivedPushTask]
     2  ldc_w <Class com.parse.PushRouter> [16]
     5  dup
     6  astore_2
     7  monitorenter
     8  invokestatic com.parse.PushRouter.getLastTask() : com.parse.Task [17]
    11  new com.parse.PushRouter$6 [40]
    14  dup
    15  aload_0 [pushPayload]
    16  invokespecial com.parse.PushRouter$6(org.json.JSONObject) [41]
    19  getstatic com.parse.PushRouter.EXECUTOR : java.util.concurrent.ExecutorService [20]

...

     inner name: #231 HandlePushResult, accessflags: 16408 static final],
    [inner class info: #165 com/parse/PushRouter$10, outer class info: #0
     inner name: #0, accessflags: 0 default],
    [inner class info: #55 com/parse/PushRouter$9, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #45 com/parse/PushRouter$8, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #42 com/parse/PushRouter$7, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #40 com/parse/PushRouter$6, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #36 com/parse/PushRouter$5, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #29 com/parse/PushRouter$4, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #26 com/parse/PushRouter$3, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #24 com/parse/PushRouter$2, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #18 com/parse/PushRouter$1, outer class info: #0
     inner name: #0, accessflags: 8 static],
    [inner class info: #143 com/parse/PushRoutes$Route, outer class info: #64 com/parse/PushRoutes
     inner name: #387 Route, accessflags: 25 public static final]
}