SDK更新(23)後,我得到這個lint錯誤,我沒有在我的代碼中做任何改變,它正在工作對於具有api級別9的設備來說還不錯。另外,我不會在代碼中調用android.app.Activity#onCreateView。如果我點擊自動修復,它將@SuppressLint(「NewApi」)放入類@SuppressLint("NewApi") public class MyActivity extends android.support.v4.app.FragmentActivity
這樣的聲明中,並且錯誤消失,我想確定是否應該這樣。調用需要API級別11(當前最小爲9)android.app.Activity#onCreateView
回答
我也遇到了同樣的問題。
如果你看一看的Javadoc Activity類(http://developer.android.com/reference/android/app/Activity.html#onCreateView%28android.view.View,%20java.lang.String,%20android.content.Context,%20android.util.AttributeSet%29),你會看到,該方法公衆查看onCreateView(查看父,字符串名稱,上下文的背景下,ATTRS的AttributeSet)在API 11中添加
在類聲明級別,我沒有使用@SuppressLint(「NewApi」),而是將特定的方法添加到我的代碼中,並抑制了方法聲明的lint警告。像這樣:
@SuppressLint("NewApi")
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
if(Build.VERSION.SDK_INT >= 11)
return super.onCreateView(parent, name, context, attrs);
return null;
}
這樣,任何未來增加的類的代碼仍然會得到由lint檢查,但皮棉將停止檢舉此方法有錯誤。
ETA:Javadoc for class表示onCreateView(...)方法返回null作爲默認行爲,並且pre API 11方法的實現爲空。
這是一個無法回答的問題,因爲他們的代碼完全不會調用/覆蓋'onCreateView'。這是Android SDK中的一個錯誤; [這裏是明星問題](https://code.google.com/p/android/issues/detail?id=188677)。 – nkorth
@nkorth,當由getSystemService(Class)返回的LayoutInflater膨脹時,android'調用'onCreateView''。 api文檔就是這樣說的,就在我提供的鏈接中,你沒有去讀。其次,問題是關於使用@SuppressLint來壓制警告,而不是關於錯誤的來源。但是,爲了找到對它的引用而感謝你。 – user5292387
@SuppressLint(「NewApi」)是Android Lint工具使用的註釋。
代碼中的某些內容不是最優或可能會崩潰。通過傳遞NewApi那裏,你壓制所有警告,將如果您使用的minSdkVersion
之後推出的更多信息任何API告訴你,然後決定看看Android的皮棉檢查:HERE
您也可以使用@ TargetApi。
區別在於,通過@TargetApi,您可以通過參數聲明代碼中已解決的API級別,以便稍後修改該方法以嘗試引用比@TargetApi中引用的API級別。
@TargetApi是更好的註釋,允許您以更精細的方式告訴構建工具「好的,我修復了這類問題」。
其實我並不想使用註解,我也不需要它們,因爲我的代碼根本不使用Activity#onCreateView。由於android api本身引發錯誤。我正在嘗試爲Android自己的錯誤找到最佳的解決方法。你的答案是有幫助的,並感謝你,但它不回答我的實際問題。 – user65721
正如user5292387所述,添加了oncreateview。而不是抑制我使用的棉絨
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
super.onCreateView(parent, name, context, attrs) :
super.onCreateView(name, context, attrs);
}
第一次調用超級用於運行Honeycomb Android OS和更高版本的設備。對super的第二次調用是運行比Honeycomb Android OS更少的設備。我認爲它看起來更清潔,而不是返回null。然而,android文檔確實指出返回null將導致默認行爲。這兩種解決方案都應該可以工作,但是我對於返回null表示懷疑,因爲這可能會在Android SDK的後續版本中產生不利影響。
大家似乎缺少的東西是他正在使用v4 Support Library中的FragmentActivity。根據定義,該類應該與Android API 4兼容。由於FragmentActivity提供了自己的onCreateVivew()實現,因此不會發出警告。
在我看來這是一個Lint bug。
我認爲@SupressLint(「NewAPI」)是讓周圍的皮棉錯誤(因爲我不相信這是一個錯誤的話)最簡單的方法。還要記住,Lint錯誤不是編譯錯誤。他們向您建議您在代碼中可能存在問題,或者有更好的方法來執行此操作。
- 1. 調用需要API級別11(當前最小爲8):android.widget.EditText#setAlpha
- 2. 類需要API級別11(當前最小爲7):android.app.ActionBar.TabListener
- 3. 類需要API級別11(當前最小值爲8)
- 4. 調用需要API級別12(當前最小值爲9):android.os.Bundle#getString
- 5. setAdapter「調用需要API級別11(當前最小爲8):android.widget.AbsListView#setAdapter」?
- 6. 調用需要API級別16(當前最小值爲14):android.app.Notification.Builder#build
- 7. 調用需要API級別24(當前最小值爲8):new android.location.GnssStatus.Callback
- 8. 調用需要API級別5(當前最小值爲3):android.app.Service#startForeground
- 9. 需要API級別21(當前最小值是16)
- 10. android-通話需要API等級9(當前最小爲8):android.os.StrictMode#setThreadPolicy
- 11. 錯誤:調用需要API等級23(目前最小爲15):
- 12. 通話需要API等級24(當前最小值爲12):android.icu.util.calendar
- 13. Sherlock:android:textAllCaps需要API等級14(當前最小爲8)
- 14. 通話需要API等級14(當前最小爲10):
- 15. onCreateView()需要API級別11 ..如何支持舊設備上的活動(Android Activity)
- 16. 無法擴展ListFragment - 「調用需要API級別11」
- 17. 代碼要求API級別11(當前是8)
- 18. 錯誤消息:字段需要API級別11(當前分鐘8):android.os.AsyncTask#THREAD_POOL_EXECUTOR
- 19. Alertdialog.Builder setview:調用需要API級別21
- 20. L預覽:通話需要API等級21(當前最小爲20)
- 21. Android通話需要API等級13(當前最小爲10):android.view.Display#getSize
- 22. <animated-vector>需要API等級21(當前最小值爲15)
- 23. 調用需要API級別9(當前是8 =>錯誤),android.media.audiofx.Visualizer相關。 (圖片內)
- 24. 調用API需要14級(當前分鐘8):android.view.ViewGroup#canScrollHorizontally
- 25. api級別小於11的DatePickerDialog
- 26. 的Eclipse:呼叫需要API級別11上的源文件
- 27. 如何解決「通話需要API級別11」與Android Activity?
- 28. 拖放API級別9
- 29. 屬性`parentActivityName`僅用於API級別16和更高(當前最小值是15)
- 30. ActionBarSherlock給人噸的「呼叫需要API級別11(當前分鐘是7)」的錯誤
[Call要求API等級11(當前最小爲8)的可能重複android.app.Activity#onCreateView](http://stackoverflow.com/questions/32181705/call-requires-api-level-11current-min -is-8-android-app-activityoncreateview) – Murmel