2016-08-13 3 views
0

중단 된 코드를 실행했을 때 애플리케이션에 갑자기 스플래시 화면이 생성되었습니다. 내 코드에서 스플래시 화면을 만든 다음 메뉴로 리디렉션합니다. 안드로이드 매니페스트 XML에 문제가 있습니까?스플래시 화면으로 앱을 시작할 때 애플리케이션이 중지되었습니다.

여기 내 매니페스트 코드입니다 :

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".WelcomeActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.action.LAUNCHER"> 
      </category> 
     </intent-filter> 
    </activity> 
    <activity android:screenOrientation="landscape" android:name=".Play"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
</application> 

</manifest> 

그리고 이것은 시작 클래스 코드 :

package com.example.kenneth.rusa; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.SystemClock; 


/** 
* Created by Kenneth on 8/6/2016. 
*/ 
public class WelcomeActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.welcomeactivity); 
    RunMe runme = new RunMe(); 
    Thread t = new Thread(runme); 
    t.start(); 

} 
class RunMe implements Runnable { 
    public void run() { 
     SystemClock.sleep(3000); 
     Intent intent = new Intent(WelcomeActivity.this,MainActivity.class); 
     startActivity(intent); 
     finish(); 
    } 
} 
} 
+2

당신이 너무 로그 캣을 게시하시기 바랍니다 수 ... 당신은 3 개 활동 홈 화면 런처에 추가 할 필요 이유는 무엇 – Lal

+1

입니까? –

답변

0

<intent-filter> 
<action android:name="android.intent.action.MAIN"/> 
<category android:name="android.intent.category.LAUNCHER"/> 
</intent-filter> 
+0

필자는 필연적 인 것은 아니지만 권장 사항입니다. 필자는 이러한 필터를 사용하여 여러 가지 작업을 테스트했으며 첫 번째 필터가 우선 순위를두고 'LAUNCHER'입니다. –

+0

시작 프로그램이 WelcomeActivity이지만 여기에 공유 된 코드의 첫 번째 위치에 정의되어 있지 않습니다. 권장 사항을 따르십시오. 적어도 시도해보고 문제를 확인하십시오. – Ramit

+1

그건 내 코드가 아니야 :) 방금 ​​이걸 시도했는데 유효하다고 했어. –

0

NVM 내가 고정 스플래시 이외의 활동에서 줄을 다음 제거하십시오 매니페스트 파일을 변경하여 변경합니다.

다음은 업데이트 된 코드

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat.NoActionBar"> 
    <activity android:screenOrientation="landscape" android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.default" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".WelcomeActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 
    <activity android:screenOrientation="landscape" android:name=".Play"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.default"/> 
     </intent-filter> 
    </activity> 
</application> 

관련 문제