Атрибутът minSdkVersion
означава, че библиотеката е проектирана без да се вземат предвид нивата на API, по-ниски от тази стойност. Разработчиците не обърнаха внимание, ако даден метод или поле не е налично на API ниво по-ниско от 15, и това е методът, който да ви информира.
Например полето THREAD_POOL_EXECUTOR
, използвано в метода getExecutor е наличен само от API ниво 11:
public static Executor getExecutor() {
synchronized (LOCK) {
if (FacebookSdk.executor == null) {
FacebookSdk.executor = AsyncTask.THREAD_POOL_EXECUTOR;
}
}
return FacebookSdk.executor;
}
Във версия 4.5.1 getExecutor методът е различен и поддържа също API ниво 9:
public static Executor getExecutor() {
synchronized (LOCK) {
if (FacebookSdk.executor == null) {
Executor executor = getAsyncTaskExecutor();
if (executor == null) {
executor = new ThreadPoolExecutor(
DEFAULT_CORE_POOL_SIZE, DEFAULT_MAXIMUM_POOL_SIZE, DEFAULT_KEEP_ALIVE,
TimeUnit.SECONDS, DEFAULT_WORK_QUEUE, DEFAULT_THREAD_FACTORY);
}
FacebookSdk.executor = executor;
}
}
return FacebookSdk.executor;
}
В заключение, не трябва да използвате последната версия на Facebook SDK, но трябва да се придържате към последната съвместима версия (4.5.0).
Промяната във версията на minApk е показана в регистрационния файл за надграждане по-долу: - https://developers.facebook.com/docs/android/upgrading-4.x.
и интересното издание е по-долу https://github.com/facebook/facebook-android-sdk/releases?after=sdk-version-4.8.1
person
Mattia Maestrini
schedule
13.11.2015