2016-05-28 15 views
1

Ich bin mir nicht sicher, was genau dieses Problem Problem verursacht, aber jedes Mal, wenn ich eine Bildressource als Hintergrund für meine ImageButton hinzufügen, bekomme ich den gleichen Fehler. Die App hat gerade erst begonnen, also gibt es kaum Code. Hier ist der Fehler:Beim Hinzufügen von Hintergrundbild: Fehler beim Aufblasen der Klasse android.widget.ImageButton

05-28 12:22:08.158 7186-7186/com.example.myname.appname E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myname.appname/com.example.litmo.appname.HomeScreen}: android.view.InflateException: Binary XML file line #22: Error inflating class android.widget.ImageButton 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #22: Error inflating class android.widget.ImageButton 
    at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
    at com.example.myname.appname.HomeScreen.onCreate(HomeScreen.java:19) 
    at android.app.Activity.performCreate(Activity.java:5133) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Constructor.constructNative(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
    at com.example.myname.appname.HomeScreen.onCreate(HomeScreen.java:19) 
    at android.app.Activity.performCreate(Activity.java:5133) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.OutOfMemoryError 
    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:503) 
    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:356) 
    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:800) 
    at android.content.res.Resources.loadDrawable(Resources.java:2110) 
    at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
    at android.view.View.<init>(View.java:3364) 
    at android.widget.ImageView.<init>(ImageView.java:121) 
    at android.widget.ImageButton.<init>(ImageButton.java:87) 
    at android.widget.ImageButton.<init>(ImageButton.java:83) 
    at java.lang.reflect.Constructor.constructNative(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
    at com.example.myname.appname.HomeScreen.onCreate(HomeScreen.java:19) 
    at android.app.Activity.performCreate(Activity.java:5133) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 

Hier ist der XML-Code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".HomeScreen" 
    android:background="@android:drawable/screen_background_dark_transparent" 
    android:clickable="true" 
    android:id="@+id/homescreen_view"> 

    <Button 
     android:layout_width="100.0dp" 
     android:layout_height="25.0dp" 
     android:text="Help" 
     android:id="@+id/instructionsButton" 
     android:layout_alignParentTop="false" 
     android:layout_alignParentStart="true" 
     android:textColor="#05ffda" 
     android:background="@android:color/holo_purple" 
     android:longClickable="true" /> 

    <ImageButton 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:id="@+id/soundEnable_button" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentEnd="true" 
     android:longClickable="true" 
     android:nestedScrollingEnabled="true" 
     android:background="@drawable/musicoff" /> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="100dp" 
     android:layout_height="25dp" 
     android:text="Highscores" 
     android:id="@+id/highscores_button" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:background="@android:color/holo_purple" 
     android:textColor="#05ffda" /> 

    <Button 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="100dp" 
     android:layout_height="30dp" 
     android:text="Play Game" 
     android:id="@+id/startGame_button" 
     android:background="@android:color/holo_purple" 
     android:textColor="#05ffda" 
     android:layout_marginTop="175dp" 
     android:singleLine="true" 
     android:layout_alignParentTop="false" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

hier ist der Java-Code:

import android.media.Image; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.Toast; 

public class HomeScreen extends AppCompatActivity { 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_home_screen); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_home_screen, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Sind Sie sicher, dass 'musicoff' in Ihrem aufklappbaren Ordner vorhanden ist? –

+0

ja, es ist in meinem Zeichnungsordner als .png – 1QuickQuestion

+0

Ihr Bild haben große Größe. Versuchen Sie, das Bild zu skalieren. –

Antwort

1

Ich habe den Code ausprobiert und es funktioniert für mich. Also ich denke, Ihr Problem ist Ihre musicoff Zeichnungsfähig und genau die Größe davon.

Versuchen Sie, diese Zeichengröße zu ändern oder versuchen Sie es mit einem anderen Zeichenbild und es wird funktionieren.

+0

dd Sie ändern die Größe? oder etwas ändern? – 1QuickQuestion

+0

Ich versuche einen anderen Zeichensatz. In der Tat hatte ich vorher das gleiche Problem. Versuchen Sie es mit einem anderen Zeichensatz oder ändern Sie die Zeichengröße. Lässt mich wissen, ob es funktioniert –

+0

Ich bekomme immer noch den gleichen Fehler. Wie groß ist die Größe der Datei, die Sie verwenden? – 1QuickQuestion

Verwandte Themen