2012-01-07 38 views
5

tôi có bố cục trang tổng quan có nhiều hình ảnh. Khi tôi chạy các ứng dụng tôi nhận được lực lượng gần lỗi và các điểm lỗi cho dòng này trong bảng điều khiển avtivty nơi thổi phồng bố trí (tức là setContentView (R.layout.dashboard) .Tôi không hiểu tại sao.Tôi sử dụng cùng một bố trí Bảng điều khiển với hình ảnh khác và tất cả vẫn ổn. Bây giờ nó có sáu hình ảnh nhưng lớn hơn nhiều kích thước. tôi không biết nếu điều này là vấn đề và cách giải quyết này? cảm ơn. đây là dashboardlayout tôi.Lỗi StackOverflow, Ngoại lệ View.inflate

<com.utils.DashboardLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/background" > 

<Button 
    android:id="@+id/home_btn_general_knowledge" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/general_knowledge_icon_bg_selector" 
    android:onClick="onGeneralKnowledgeClick" 
    android:text="General Knowledge" /> 

<Button 
    android:id="@+id/home_btn_brainteasers" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/brain_teasers_icon_bg_selector" 
    android:onClick="onBrainTeasersClick" 
    android:text="Brain Teasers" /> 

<Button 
    android:id="@+id/home_btn_movies" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/movies_icon_bg_selector" 
    android:onClick="onMoviesClick" 
    android:text="Movies" /> 

<Button 
    android:id="@+id/home_btn_sports" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/sports_icon_bg_selector" 
    android:onClick="onSportsClick" 
    android:text="Sports" /> 

<Button 
    android:id="@+id/home_btn_music" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/music_icon_bg_selector" 
    android:onClick="onMusicClick" 
    android:text="Music" /> 

<Button 
    android:id="@+id/home_btn_celebrities" 
    style="@style/DPDashBoardButton" 
    android:drawableTop="@drawable/celebrity_icon_bg_selector" 
    android:onClick="onCelebritiesClick" 
    android:text="Celebrities" /> 

Đây là logcat lỗi:

01-08 02:29:29.216: E/AndroidRuntime(4221): FATAL EXCEPTION: main 
01-08 02:29:29.216: E/AndroidRuntime(4221): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hussein.android./com.hussein.android.DashBoardActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.Button 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.os.Looper.loop(Looper.java:123) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at java.lang.reflect.Method.invoke(Method.java:507) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at dalvik.system.NativeStart.main(Native Method) 
01-08 02:29:29.216: E/AndroidRuntime(4221): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.Button 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.createView(LayoutInflater.java:518) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.Activity.setContentView(Activity.java:1657) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at com.hussein.android.quizgame.DashBoardActivity.onCreate(DashBoardActivity.java:18) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  ... 11 more 
01-08 02:29:29.216: E/AndroidRuntime(4221): Caused by: java.lang.reflect.InvocationTargetException 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at java.lang.reflect.Constructor.constructNative(Native Method) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.view.LayoutInflater.createView(LayoutInflater.java:505) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  ... 22 more 
01-08 02:29:29.216: E/AndroidRuntime(4221): Caused by: java.lang.StackOverflowError 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable$StateListState.indexOfStateSet(StateListDrawable.java:274) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable$StateListState.access$000(StateListDrawable.java:253) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.onStateChange(StateListDrawable.java:95) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.<init>(StateListDrawable.java:306) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.<init>(StateListDrawable.java:70) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:749) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.loadDrawable(Resources.java:1694) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.getDrawable(Resources.java:581) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.loadDrawable(Resources.java:1694) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.getDrawable(Resources.java:581) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.loadDrawable(Resources.java:1694) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.content.res.Resources.getDrawable(Resources.java:581) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) 
01-08 02:29:29.216: E/AndroidRuntime(4221):  at android.graphics.drawable.Drawable.createFromXml(Dr 
01-08 02:29:29.327: D/dalvikvm(4221): GC_CONCURRENT freed 284K, 52% free 2749K/5639K, external 6582K/8020K, paused 7ms+7ms 

Ở đây tôi s một trong những drawables của tôi sports_icon_bg_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/sports" android:state_focused="true" android:state_pressed="false"/> 
    <item android:drawable="@drawable/sports" android:state_focused="true" android:state_pressed="true"/> 
    <item android:drawable="@drawable/sports_blue" android:state_focused="false" android:state_pressed="true"/> 
    <item android:drawable="@drawable/sports"/> 
</selector> 
+0

Bạn có thể gửi nội dung của drawables XML của bạn? Dường như lỗi không có gì liên quan đến bố cục Trang tổng quan, nhưng trong các nút drawables của bạn (StateListDrawable) –

+0

@MarkRenouf, tôi đã chỉnh sửa câu hỏi theo yêu cầu của bạn. – Hussein

Trả lời

2

Bạn có định nghĩa vòng tròn về các đồ dùng của bạn. Một (hoặc nhiều) bộ chọn của bạn tham chiếu một cái gì đó tham chiếu đến bộ chọn một lần nữa. (Hoặc có lẽ nó tham chiếu riêng của mình.)

(Theo tôi, trình biên dịch tài nguyên nên bắt này, nhưng nó dường như không.)

+0

Cảm ơn, đề xuất của bạn đã hướng dẫn tôi giải quyết vấn đề. Vấn đề là tôi đã đặt tên xml drawables với cùng tên như một số hình ảnh, kết quả là, các selectors đã tham chiếu trong một vòng lặp Vì vậy, khi tôi đổi tên chúng, vấn đề của tôi đã được giải quyết! – Hussein

+0

@Hussein Cảm ơn bạn đã chia sẻ điều gì đã xảy ra. Những lỗi này có thể được tinh tế, đó là lý do tại sao tôi nghĩ rằng trình biên dịch nên bắt chúng (hoặc ít nhất là cảnh báo về chúng). –

+0

Vâng, tôi cũng nghĩ như vậy, funnilly, trình biên dịch không "phàn nàn" chút nào. – Hussein

Các vấn đề liên quan