2017-03-31 13 views
-1

"shared()"メソッドが何らかの理由で認識されていないため、アプリケーションのコードがコンパイルされません。私が見誤差は次のとおりです。Urban Airship "エラー:シンボルメソッドshared()を見つけることができません"

error: cannot find symbol method shared() 

私は私の「build.gradle(モジュール:アプリ)」でこれを使用していたファイル:

dependencies { 
    ...................... 
    // Urban Airship SDK 
    compile 'com.urbanairship.android:urbanairship-sdk:8.3.+' 
    ...................... 
} 

を、私はこの「共有()」メソッドが含まれるだろうと思いましたUrban Airship SDKバージョン8.3 +で私は呼んでいます。私は、彼らが提供アーバン飛行船サンプルアプリが表示されたら、「共有()」メソッドをhttps://github.com/urbanairship/android-library/blob/master/urbanairship-sdk/src/main/java/com/urbanairship/UAirship.javaで宣言されています

/** 
* Returns the shared UAirship singleton instance. This method will block 
* until airship is ready. 
* 
* @return The UAirship singleton. 
* @throws IllegalStateException if takeoff is not called prior to this method. 
*/ 
@NonNull 
public static UAirship shared() { 
    synchronized (airshipLock) { 
     if (!isTakingOff && !isFlying) { 
      throw new IllegalStateException("Take off must be called before shared()"); 
     } 

     return waitForTakeOff(0); 
    } 
} 

「共有()」メソッドは私のために使用できない理由についての任意のアイデア?これは私が私のコードでそれを使用する方法の一例であり、この方法が認識されない、私は、ソースコードのさまざまな部分から、数回それを呼び出すが、それは常に同じです:

String appid=PushManager.shared().getAPID(); 

ありがとうございました。

+0

私が "Urban Airship SDK"の依存関係のために "コンパイルファイル( 'libs/urbanairship-lib-3.3.0.jar')を使用していた時、以前は正しく機能していました。今、私はアップグレードしています。代わりに、これを私の依存関係で使用しています。 "com.urbanairshipandandroid:neighborhoodairship-sdk:8.1.3+"をコンパイルしてください。今は "shared()"メソッドが私のために働いていません。私は彼らがUrban Airship Sample Appで使用していることを知っています。たとえば、https://github.com/urbanairship/android-library/blob/master/urbanairship-sdk/src/main/java/com/urbanairship/UAirship.java : "UAirship飛行船= UAirship.shared();" –

+0

私はhttp://docs.urbanairship.com/api/ua/#post-api-custom-eventsでこの情報を読んでいました:「Android 5.0 SDKより前:PushManager.shared().setDeviceTagsEnabled(false);. Android SDK 5.0以降:UAirship.shared()。getPushManager().setDeviceTagsEnabled(false); "私の問題は、以前のUrban Airship SDK 3.3.0を使用していたので、今は8.3。+にアップグレードしているので、新しいUrban Airship SDKの構文を尊重する必要があります。 –

+0

私はこの情報もhttp://stackoverflow.com/questions/26717398/urbanairship-android-unable-to-getapidで見つけました: 'APIDはもはやアーバン飛行船の5.xシリーズでは使用されていません。新しい "チャネル"識別子が使用されます。 APIDと本質的に同じです。代わりに "String appid = PushManager.shared()。getAPID();"の代わりにおそらく "String appid = UAirship.shared()。getPushManager()。getChannelId();"は私のためにエラーをスローしませんし、私が質問で述べた "shared()"メソッドも使用しています。 –

答えて

1

3.3から8.3はかなり大きなアップデートです。 「apids」の代わりに「チャンネル」を使用しました。これは本質的には同じですが、少し更新されました。また、個々のモジュールのシングルトンアクセサの大部分を削除し、それらをUAirshipインスタンスに移動しました。新しいコードでは、私がUrban Airship Android Guide見だけでなく、migration guideを取る推薦する

UAirship.shared().getPushManager().getChannelId();

でなければなりません。 APIの変更以外にも、listeningcustomizing push notificationsに変更を加えました。現在、私たちはプッシュAPIと飛行船の設定でほとんどのオプションを提供しているので、カスタマイズの通知は必要ではありません。

関連する問題