) "shared()"메소드가 어떤 이유로 인식되지 않아 내 앱 코드가 컴파일되지 않습니다. 내가 볼 수있는 오류는 다음과 같습니다Urban Airship "오류 : 심볼 메서드를 찾을 수 없습니다."(
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();
감사합니다.
어쨌든 필자는 Urban Airship SDK의 종속 파일에서 "libs/urbanairship-lib-3.3.0.jar"파일을 컴파일 할 때 제대로 작동하고있었습니다. 이제 업그레이드 중이므로 대신 내 종속성에서 사용하고 있습니다. "com.urbanairship.android:urbanairship-sdk:8.3.+ '"을 컴파일하십시오. 이제는 "shared()"메서드가 작동하지 않습니다. Urban Airship Sample 앱에서 사용하는 것으로 알고 있습니다. 예를 들어 https://github.com/urbanairship/android-library/blob/master/urbanairship-sdk/src/main/java/com/urbanairship/UAirship.java : "UA 항공의 비행선 = UAirship.shared();". –
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 비행선 SDK의 구문을 존중해야한다는 것입니다. –
이 정보는 http://stackoverflow.com/questions/26717398/urbanairship-android-unable-to-getapid에서도 발견되었습니다. 'APID는 더 이상 Urban Airship 5.x 시리즈에서 사용되지 않습니다. 대신 새로운 "채널"식별자가 사용됩니다. APID와 본질적으로 같습니다. ' 그래서 대신 "문자열 appid = PushManager.shared(). getAPID();" 나는 아마도 "String appid = UAirship.shared(). getPushManager(). getChannelId();"를 사용하여 나에게 오류가 발생하지 않으며 질문에서 언급 한 "shared()"메서드를 사용하고있다. –