2012-04-25 102 views
30

Eclipse拒絕構建我的Android項目。在包資源管理器中,項目根節點具有小紅色錯誤符號,但其內部沒有其他符號。存在的問題選項卡顯示由lint檢測到的錯誤:Android Lint錯誤地認爲min SDK版本是1

Call requires API level 3 (current min is 1): android.os.AsyncTask#<init> 
Call requires API level 3 (current min is 1): android.view.GestureDetector#<init> 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#hideSoftInputFromWindow 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#hideSoftInputFromWindow 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#showSoftInput 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#showSoftInput 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#showSoftInput 
Call requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager#toggleSoftInput 
Call requires API level 3 (current min is 1): android.view.Menu#getItem 
Call requires API level 3 (current min is 1): android.view.Menu#getItem 
Call requires API level 3 (current min is 1): android.widget.HorizontalScrollView#getId 
Call requires API level 5 (current min is 1): android.app.Activity#onBackPressed  
Call requires API level 5 (current min is 1): android.app.Activity#onBackPressed  
Call requires API level 5 (current min is 1): android.app.Activity#onBackPressed  
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.view.inputmethod.InputMethodManager 
Class requires API level 3 (current min is 1): android.widget.HorizontalScrollView 
Class requires API level 3 (current min is 1): android.widget.HorizontalScrollView 
Field requires API level 3 (current min is 1): android.os.Build#DISPLAY 
Field requires API level 4 (current min is 1): android.content.res.Configuration#screenLayout 
Field requires API level 4 (current min is 1): android.os.Build#CPU_ABI 
Field requires API level 4 (current min is 1): android.os.Build#MANUFACTURER 
Field requires API level 4 (current min is 1): android.os.Build$VERSION#SDK_INT 

我最好的猜測是,林特認爲我的minSdkVersion爲1,它不是;我的清單聲明minSdkVersion="8"。我試過以下,以努力解決這個問題:

  • 。重新啓動Eclipse
  • 重新啓動我的電腦
  • 項目>清潔
  • 手動刪除/bin/gen強制下襬再次
  • 產生

在這一點上我沒有想法。任何人都有建議?

+0

你有其他項目在eclipse中打開嗎?如果是的話,關閉所有,但與你一起工作(甚至圖書館)。然後重新運行lint。 – inazaruk 2012-04-25 19:39:40

+0

我確認這也發生在我身上,當時我將工作的Android項目移動到工作區的子文件夾中。 * Android工具>清除鏈接標記*似乎是一個可行的解決方法。 – 2012-10-12 09:41:06

+0

您是否使用其他項目作爲庫?儘管我在應用程序的清單中聲明瞭'minSdkVersion',我在應用程序所依賴的庫項目中獲得了這個Lint-Marker,所以我必須在我的庫項目的清單中聲明'minSdkVersion' – 2012-11-27 10:36:39

回答

77

我有同樣的問題,我的解決方法是:

右鍵單擊該項目文件夾> Android的工具>清除皮棉標記

「執行Android Lint」使某些標記和標記導致此錯誤。

+0

我相信這是我所做的,但不知怎的,它通過右鍵單擊並選擇了某些內容從問題選項卡執行......我確實不確定是什麼,但我記得它是其中的一部分,「清除絨毛標記」這會得到複選標記。 – jdk 2012-04-26 17:48:43

+0

其他解決方案是將項目移動到工作空間的頂層而不是某個子文件夾 – 2012-07-11 08:43:00

+0

即使這樣做,也會出現錯誤。除了「Clear Lint Markers」之外,還需要關閉並重新開放該項目。 – tarkeshwar 2012-08-06 09:19:49

2

嘗試在項目文件夾,右鍵單擊> Android的工具>修復性

您也應該檢查你的所有Android庫和東西以正確的順序進行檢查和加載生成屬性。在項目上右鍵單擊>屬性>生成

+0

這對我有效,我嘗試過大多數其他解決方案,並且即將放棄。我不知道它是否真的改變了什麼,或者只是告訴eclipse重建緩存(像往常一樣),但它的工作。 – MrCeeJ 2014-04-16 08:40:08

+0

超級遲到回覆(抱歉),但這基本上是在您的屬性更新後重建項目。所以,基本上只是重建;這是一個不同於lint錯誤的問題,有時重建只是爲了! – 2014-12-28 10:32:12

1

一個簡單的項目 - >清潔也解決了我的問題。

6

確保你有android:命名空間標識符minSdkVersion屬性。像這樣:

android:minSdkVersion="8"

當創建基於一些Android示例項目(如BluetoothChat)的項目時,名稱空間被省略並混淆Lint。然後,即使清除Lint標記也不能真正解決問題,因爲它們在再次運行Lint後重新出現,這經常會自動發生。

注:這是與樣品修訂1驗證爲API16

+0

這是實際的解決方案。所有其他答案都只是解決方法。把這個添加到你的AndroidManifest.xml中'' – 2015-01-21 18:56:45

16

「清除林特標記」在接受的答案暫時刪除的錯誤,但它一直每次我在受影響的項目保存文件時回來。

爲了使它停止報告這個錯誤,我不得不完全禁用皮棉檢查:

Right click project -> Properties -> Android Lint Preferences 

Search for "minSdk" in the search box 

Click on "UsesMinSdkAttributes" 

Click the "Ignore All" button at the bottom. 

清理並重建項目和Eclipse/ADT將不再對項目運行的minSdk皮棉檢查。

+1

這讓我瘋狂!謝謝 :) – brianvaughn 2013-04-16 14:09:53