2016-01-03 2 views
-2

Мое приложение разбивается в эмуляторе. Я посмотрел на logCat и нашел FATAL EXCEPTION, но я не знаю, как это решить. Я нашел похожие вопросы, но их решение не решает мою проблему. Я не понимаю, что не так с моим кодом.Мое приложение разбивается в эмуляторе с FATAL EXCEPTION

LogCat

--------- beginning of crash 
01-03 15:48:12.322 2990-2990/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.example.dell.firstapp, PID: 2990 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dell.firstapp/com.example.dell.firstapp.Splash}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5257) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown> 
      at android.view.LayoutInflater.createView(LayoutInflater.java:633) 
      at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
      at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
      at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
      at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
      at android.app.Activity.setContentView(Activity.java:2145) 
      at com.example.dell.firstapp.Splash.onCreate(Splash.java:16) 
      at android.app.Activity.performCreate(Activity.java:5990) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5257) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: java.lang.reflect.InvocationTargetException 
      at java.lang.reflect.Constructor.newInstance(Native Method) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
      at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
            at android.app.Activity.setContentView(Activity.java:2145) 
            at com.example.dell.firstapp.Splash.onCreate(Splash.java:16) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5257) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
    Caused by: java.lang.OutOfMemoryError: Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM 
      at dalvik.system.VMRuntime.newNonMovableArray(Native Method) 
      at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
      at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609) 
      at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444) 
      at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:988) 
      at android.content.res.Resources.loadDrawableForCookie(Resources.java:2474) 
      at android.content.res.Resources.loadDrawable(Resources.java:2381) 
      at android.content.res.TypedArray.getDrawable(TypedArray.java:749) 
      at android.view.View.<init>(View.java:3737) 
      at android.view.ViewGroup.<init>(ViewGroup.java:497) 
      at android.widget.LinearLayout.<init>(LinearLayout.java:200) 
      at android.widget.LinearLayout.<init>(LinearLayout.java:196) 
      at android.widget.LinearLayout.<init>(LinearLayout.java:192) 
            at java.lang.reflect.Constructor.newInstance(Native Method) 
            at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
            at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
            at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
            at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:482) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378) 
            at android.app.Activity.setContentView(Activity.java:2145) 
            at com.example.dell.firstapp.Splash.onCreate(Splash.java:16) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at ``android.app.ActivityThread.main(ActivityThread.java:5257) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)" 
public class Starting extends Activity implements View.OnClickListener{ 

TextView display; 
Button add, sub; 
int counter=0; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_starting); 
    initialise(); 
} 

private void initialise(){ 
    display=(TextView) findViewById(R.id.tvDisp); 
    add=(Button) findViewById(R.id.bAdd); 
    sub=(Button) findViewById(R.id.bSub); 
    add.setOnClickListener(this); 
    sub.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    switch(v.getId()){ 
     case R.id.bAdd: 

      counter++; 
      display.setText("Your total is "+counter); 
      break; 
     case R.id.bSub: 
      counter--; 
      display.setText("Your total is "+counter); 
      break; 
    } 
} 

}

public class Splash extends Activity{ 

@Override 
protected void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    setContentView(R.layout.splash); 
    Thread timer= new Thread(){ 
     public void run() { 
      try{ 
       sleep(2000); 
      }catch (InterruptedException e){ 
       e.printStackTrace(); 
      }finally { 
       Intent openStarting= new Intent("com.example.dell.firstapp.STARTING"); 
       startActivity(openStarting); 
      } 
     } 
    }; 
    timer.start(); 
} 

}

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <TextView android:text="Your total is 0" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textSize="50dp" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:id="@+id/tvDisp" 
     /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="Add one" 
     android:id="@+id/bAdd" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="substract one" 
     android:layout_gravity="center" 
     android:id="@+id/bSub" /> 


</LinearLayout> 

androidMenifest 

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.dell.firstapp" > 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".Splash" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name=".Starting" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="com.example.dell.firstapp.STARTING" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 
+1

Можете ли вы опубликовать свой полный код logcat –

+0

, который ничего не сообщает нам, когда нет ни одного журнала – piotrek1543

+0

, как отправить лог-код? – ABSTONE

ответ

1
Caused by: java.lang.OutOfMemoryError: Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM 

Где-то в вашем приложении, у вас есть LinearLayout, на котором вы разместили android:background ATTRIB ute (или, возможно, что-то еще), указывающее на ресурс, который можно извлечь. Этот доступный ресурс слишком большой. Декомпрессированное изображение будет 74 649 612 байтов. Это эквивалентно 8 640 x 8 640 пикселам iamge. Нет основных устройств с экраном, где-нибудь рядом с этим разрешением.

Пожалуйста, уменьшите разрешение этого изображения. И если вы сделали что-то вроде поместить его в res/drawable/, подготовьте различные версии этого изображения для разных плотностей экрана (например, res/drawable-xhdpi/), так как автоматическая передискретизация изображения усугубляет вашу проблему.

Смежные вопросы