minSdkVersion 属性意味着库的设计没有考虑低于该值的 API 级别。如果 API 级别低于 15 的方法或字段不可用,开发者没有注意,这是通知您的方法。
例如,getExecutor 方法中使用的字段 THREAD_POOL_EXECUTOR 仅在 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