Tại sao android support library v7 deprecated actionbar
Có đọc tài liệu trên http://developer.android.com/guide/topics/ui/actionbar.html thấy v7 hỗ trợ actionbar từ android 2.1 mà khi tạo project android 2.3 thì nó báo deprecated ationbar.
Stack trace
java.lang.NoSuchFieldError: action_bar
at android.support.v7.internal.widget.ActionBarContainer.onFinishInflate(ActionBarContainer.java:83)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:814)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.android.layoutlib.bridge.bars.BridgeActionBar.(BridgeActionBar.java:84)
at com.android.layoutlib.bridge.bars.AppCompatActionBar.(AppCompatActionBar.java:56)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.createActionBar(RenderSessionImpl.java:1691)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:362)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:497)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:485)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:894)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:485)
at com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:590)
at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:351)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Đạt đã trả lời tương tự câu hỏi này ở đây
Nếu sửa thì cũng có coi mấy hướng dẫn sửa oy. Mà sao em thấy nó ghi hỗ trợ cái actionbar từ 2.1 mà không được
Anh không hiểu ý em muốn nói?
ý em là lý do tại sao lại gạch actionbar.em xem trên cái link kia thấy từ android 2.1 đã hỗ trợ rồi mà
The ActionBar APIs were first added in Android 3.0 (API level 11) but they are also available in the Support Library for compatibility with Android 2.1 (API level 7) and above.
Gạch có nghĩa là đã cũ, không nên dùng nữa. Developer nên sử dụng cái mới hơn.
Deprecated có nghĩa là vẫn dùng được, nhưng không nên dùng nữa vì nó sẽ sớm bị loại bỏ. Hãy dùng cái khác.
Bây giờ chuyển qua dùng Toolbar rồi bạn, và dùng AppCompatActivity. Cái ActionBarActivity này khá cũ rồi.