2015-11-13 29 views

回答

5

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

相關問題