Urban Airship "error: cannot find symbol method shared()"

Urban Airship "error: cannot find symbol method shared()"

"shared()" 方法由于某种原因未被识别,这阻止了我的应用程序代码的编译。我看到的错误是:

error: cannot find symbol method shared()

我在我的 "build.gradle (Module: app)" 文件中使用它:

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

我认为这个 "shared()" 方法会包含在我调用的 Urban Airship SDK 版本 8.3.+ 中。当我看到他们提供的 Urban Airship Sample 应用程序时,在 https://github.com/urbanairship/android-library/blob/master/urbanairship-sdk/src/main/java/com/urbanairship/UAirship.java:

处声明了一个 "shared()" 方法
/**
 * 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);
    }
}

关于为什么 "shared()" 方法对我不可用的任何想法?这是我如何在我的代码中使用它的示例,我从源代码的不同部分多次调用它但它总是相同的,方法无法识别:

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

谢谢。

3.3 到 8.3 是相当大的更新。我们现在使用 "channels" 而不是 "apids",本质上是一样的,但已经更新了一点。我们还删除了单个模块的大部分单例访问器,并将它们移至 UAirship 实例。新代码应该是

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

我建议看一下 Urban Airship Android Guide as well as the migration guide. Other than API changes, we made lots of changes to how to listening and customizing push notifications。尽管现在我们通过推送 API 和飞艇配置提供了大多数选项,但自定义通知并不是那么必要。