Android Studio中的应用程序崩溃

Android Studio中的应用程序崩溃

问题描述:

我有我的申请,我在Android工作室制作的一个问题。我不知道为什么,但在启动画面之后,应用程序崩溃。我希望在启动画面后打开活动“Accueil”。它上周运行良好,现在它不再了。我什么也没碰。我向您展示清单以及.java文件。Android Studio中的应用程序崩溃

Splashscreen.java:

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.PixelFormat; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.animation.Animation; 
import android.view.animation.AnimationUtils; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 

public class Splashscreen extends Activity { 
    public void onAttachedToWindow() { 
     super.onAttachedToWindow(); 
     Window window = getWindow(); 
     window.setFormat(PixelFormat.RGBA_8888); 
    } 

    Thread splashTread; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splashscreen); 
     StartAnimations(); 
     Thread loading = new Thread() { 
      public void run() { 
       try { 
        sleep(5000); 
        Intent main = new Intent(Splashscreen.this,Menu.class); 
        startActivity(main); 
        finish(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } finally { 
        finish(); 
       } 
      } 
     }; 

     loading.start(); 
    } 

    private void StartAnimations() { 
     Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); 
     anim.reset(); 
     LinearLayout l = (LinearLayout) findViewById(R.id.lin_lay); 
     l.clearAnimation(); 
     l.startAnimation(anim); 
     anim = AnimationUtils.loadAnimation(this, R.anim.rotate); 
     anim.reset(); 
     ImageView iv = (ImageView) findViewById(R.id.splash); 
     iv.clearAnimation(); 
     iv.startAnimation(anim); 
     splashTread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        int waited = 0; 

        while (waited < 3500) { 
         sleep(100); 
         waited += 100; 
        } 

        Intent intent = new Intent(Splashscreen.this,Menu.class); 
        startActivity(intent); 
        finish(); 
       } catch (InterruptedException e) { 

       } 
      } 
     }; 
    } 
} 

Android清单:

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

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

     <activity android:name=".Splashscreen" 
      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=".Accueil" 
      android:label="@string/title_activity_accueil"/> 
    </application> 
</manifest> 

Accueil.java:

package com.example.thibaudmangeot.erdfapplicationsecurite; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.widget.Button; 
import android.view.View; 

public class Accueil extends ActionBarActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_accueil); 

     Button buttonfis = (Button) findViewById(R.id.buttonfis); 

     buttonfis.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       goTosignin(); 
      } 
     }); 
    } 

    private void goTosignin() { 
     Intent intent = new Intent(this, Menu.class); 
     startActivity(intent); 
    } 
} 
+1

请把你的崩溃日志。 – Rohit5k2

+0

也不要把UI线程放在睡眠中。 – Rohit5k2

做这个

Intent main = new Intent(Splashscreen.this, Accueil.class); 
        startActivity(main); 
        finish(); 

而不是

Intent main = new Intent(Splashscreen.this, Menu.class); 
       startActivity(main); 
       finish(); 

你甚至还没有在您的清单中提到的菜单活动。

这是你的错误:

Intent main = new Intent(Splashscreen.this,Menu.class); 

它应该是:

Intent main = new Intent(Splashscreen.this, Accueil.class); 

我认为您的应用程序可能崩溃的原因有两个

  1. 没有命名活动“菜单”
  2. 菜单活动清单不提到科幻le

如果您想打开“Accueil”活动,请按以下方式编写您的意图。

Intent openAccueil = new Intent(Splashscreen.this,Menu.class); 
startActivity(openAccueil);