2014-10-18 32 views
0

我有15 imageButtons,他們的src屬性被設置爲JPEG圖片:的ImageButton與JPEG源引起InflateException

<ImageButton 
     android:id="@+id/button01" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="0.2" 
     android:padding="5dp" 
     android:scaleType="fitCenter" 
     android:adjustViewBounds="true" 
     android:background="@drawable/button_state" 
     android:src="@drawable/agri_b" /> 

當我運行我的應用程序得到InflateException錯誤。我試圖將Activity班改爲FragmentActivity班,但沒有任何變化。我猜想我的JPEG圖片大小有問題。不過,我最大的圖片大小爲217 KB。 這裏是我得到的錯誤:

10-18 12:27:32.538: E/AndroidRuntime(30713): FATAL EXCEPTION: main 
10-18 12:27:32.538: E/AndroidRuntime(30713): Process: com.example.TraceYourExpense, PID: 30713 
10-18 12:27:32.538: E/AndroidRuntime(30713): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.TraceYourExpense/com.example.TraceYourExpense.NewBank}: android.view.InflateException: Binary XML file line #263: Error inflating class <unknown> 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2395) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2453) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread.access$900(ActivityThread.java:173) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.os.Handler.dispatchMessage(Handler.java:102) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.os.Looper.loop(Looper.java:136) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread.main(ActivityThread.java:5579) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at java.lang.reflect.Method.invokeNative(Native Method) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at java.lang.reflect.Method.invoke(Method.java:515) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at dalvik.system.NativeStart.main(Native Method) 
10-18 12:27:32.538: E/AndroidRuntime(30713): Caused by: android.view.InflateException: Binary XML file line #263: Error inflating class <unknown> 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.createView(LayoutInflater.java:626) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.Activity.setContentView(Activity.java:2031) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at com.example.TraceYourExpense.NewBank.onCreate(NewBank.java:51) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.Activity.performCreate(Activity.java:5451) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359) 
10-18 12:27:32.538: E/AndroidRuntime(30713): ... 11 more 
10-18 12:27:32.538: E/AndroidRuntime(30713): Caused by: java.lang.reflect.InvocationTargetException 
10-18 12:27:32.538: E/AndroidRuntime(30713): at java.lang.reflect.Constructor.constructNative(Native Method) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
10-18 12:27:32.538: E/AndroidRuntime(30713): ... 26 more 
10-18 12:27:32.538: E/AndroidRuntime(30713): Caused by: java.lang.OutOfMemoryError 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:683) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:513) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:889) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.content.res.Resources.loadDrawable(Resources.java:3454) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.widget.ImageView.<init>(ImageView.java:133) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.widget.ImageButton.<init>(ImageButton.java:88) 
10-18 12:27:32.538: E/AndroidRuntime(30713): at android.widget.ImageButton.<init>(ImageButton.java:84) 
10-18 12:27:32.538: E/AndroidRuntime(30713): ... 29 more 

任何幫助,將不勝感激。

EDIT-1

要檢查是否錯誤是對圖片的大小有關,我刪除了所有的圖片來源從ImageButtons卻不料我再次得到錯誤!認真的問題在哪裏?

+0

其與您的圖像大小的問題...嘗試縮小大小,然後使用..n首先試用2-3個視圖.. – Meenal 2014-10-18 09:43:39

+0

@MeenalSharma我刪除了所有的圖像源從imageButtons檢查這個錯誤是否與我的圖片大小有關,但即使沒有JPEG圖片我也會再次出錯!如果可能的話,現在我完全困惑 – A23149577 2014-10-18 10:07:35

+0

提供完整的源代碼,以便它會幫助。 – 2014-10-18 10:14:27

回答

0

嘗試

android:layout_width="0dp" 

(如果圖片是其父視圖內橫向顯示) 或

android:layout_height="0dp" 

(如果他們其父內部垂直顯示)。如果您使用layout_weight,則圖像的寬度或高度應始終爲0dp。

+0

btw fill_parent和match-parent是相同的東西,但是你應該使用match_parent,因爲fill_parent在幾年前已被棄用;) – mjp66 2014-10-18 09:30:42

+0

這不是問題,我改變了它,但我仍然得到異常 – A23149577 2014-10-18 10:02:48

+0

然後,如Aditya Vyas上面提到的那樣,請粘貼您的活動來源以幫助查明問題。 – mjp66 2014-10-18 11:46:45

0

可能是它的問題與您的代碼

<ImageButton 
    android:id="@+id/button01" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="0.2" 
    android:padding="5dp" 
    android:scaleType="fitCenter" 
    android:adjustViewBounds="true" 
    android:background="@android:color/transparent" 
    android:src="@drawable/ic_launcher" /> 

嘗試用這種code..if這個works..then問題可能be..you是在兩個背景設置繪製以及SRC ..這就是爲什麼你會得到錯誤..

+0

試試這個,讓我知道..如果你仍然收到錯誤.. – Meenal 2014-10-18 15:13:47