2011-01-25 2 views
1

조금 혼란 스럽네요. 애니메이션이 끝나면 스플래시 화면이 다음 .java 활동 파일을 조작하기위한 의도 함수를 시작하기로되어 있습니다 ...하지만 에뮬레이터의 스플래시 화면 이후에 실행되면, 작업. 나는 Logcat을 열었고 java.lang.nullpointer와 Pause 기능에서 실행되는 런타임 예외의 범위에 대해 언급했다. 아무도 이것을 나에게 설명 할 수 있을까? 감사.Android : 다음 .java로 전환하는 데 문제가 있습니까?

package com.unicorn.test.whee; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.animation.Animation; 
import android.view.animation.Animation.AnimationListener; 
import android.view.animation.AnimationUtils; 
import android.widget.ImageView; 


public class SplashScreenPear extends Activity { 
ImageView pearfade; 
/** Called when the activity is first created. */ 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pear); } 

private void startAnimating(){ 
    Animation pearfadeact = AnimationUtils.loadAnimation(this, R.anim.fadein); 
    ImageView pearfade = (ImageView) findViewById(R.id.pearish); 
pearfadeact.setAnimationListener(new AnimationListener(){ 

    public void onAnimationEnd(Animation animation) { 
     // The animation has ended, transition to the Main Menu screen 
     startActivity(new Intent(SplashScreenPear.this, Unicorn.class)); 
     SplashScreenPear.this.finish(); } 

     public void onAnimationRepeat(Animation animation) { 
     } 

     public void onAnimationStart(Animation animation) { 
     } 
    }); 

pearfade.startAnimation(pearfadeact); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    pearfade.clearAnimation(); 
} 
    @Override 
    protected void onResume() { 
    super.onResume(); 
    startAnimating(); 
    } 



} 

는 로그 캣 :


편집 onpause

내가 UR 확률값 라인 perfade.clearAnimation()을 생각
01-24 23:54:22.040: INFO/ActivityManager(74): Displayed com.unicorn.test.whee/.SplashScreenPear: +2s317ms (total +2m20s769ms) 
01-24 23:54:25.790: INFO/ActivityManager(74): Starting: Intent { cmp=com.unicorn.test.whee/.Unicorn } from pid 579 
01-24 23:54:25.790: DEBUG/AndroidRuntime(579): Shutting down VM 
01-24 23:54:25.790: WARN/dalvikvm(579): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579): FATAL EXCEPTION: main 
01-24 23:54:25.790: ERROR/AndroidRuntime(579): java.lang.RuntimeException: Unable to pause activity {com.unicorn.test.whee/com.unicorn.test.whee.SplashScreenPear}: java.lang.NullPointerException 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2329) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2286) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2266) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.access$1700(ActivityThread.java:117) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.os.Looper.loop(Looper.java:123) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at java.lang.reflect.Method.invoke(Method.java:507) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at dalvik.system.NativeStart.main(Native Method) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579): Caused by: java.lang.NullPointerException 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at com.unicorn.test.whee.SplashScreenPear.onPause(SplashScreenPear.java:50) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.Activity.performPause(Activity.java:3853) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1190) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2316) 
01-24 23:54:25.790: ERROR/AndroidRuntime(579):  ... 12 more 
01-24 23:54:26.339: WARN/ActivityManager(74): Activity pause timeout for HistoryRecord{4067cb18 com.unicorn.test.whee/.SplashScreenPear} 
01-24 23:54:28.169: INFO/Process(579): Sending signal. PID: 579 SIG: 9 
01-24 23:54:28.210: INFO/ActivityManager(74): Process com.unicorn.test.whee (pid 579) has died. 
01-24 23:54:28.230: ERROR/InputDispatcher(74): channel '405fa740 com.unicorn.test.whee/com.unicorn.test.whee.SplashScreenPear (server)' ~ Consumer closed input channel or an error occurred. events=0x8 
01-24 23:54:28.230: ERROR/InputDispatcher(74): channel '405fa740 com.unicorn.test.whee/com.unicorn.test.whee.SplashScreenPear (server)' ~ Channel is unrecoverably broken and will be disposed! 
+0

사람들이 질문에 답할 수 있도록 전체 logcat 출력을 게시해야합니다. – Qberticus

+0

좋아, 게시했습니다. – Mia

답변

0

, 그것은 FRM 제거 : 다른 방법으로 설정 선언입니다 위의 이미지 뷰 퍼펙드 생성;


및보다

는 startanimating 방법이 사용합니까 :


pearfade = (ImageView) findViewById(R.id.pearish); 
+0

사실 해결책이 아닙니다. – Reno

+0

ok reno 편집 된 솔보기. –

0

내 생각 엔
01-24 23:54:25.790: ERROR/AndroidRuntime(579): Caused by: java.lang.NullPointerException
01-24 23:54:25.790: ERROR/AndroidRuntime(579): at com.unicorn.test.whee.SplashScreenPear.onPause(SplashScreenPear.java:5

을의에 따라 pearfade.clearAnimation();가 null의 onPause에 그렇게 될 것입니다 내 로그

1

Doh!pearfade = (ImageView) findViewById(R.id.pearish);

... 
} 

private void startAnimating() 
{ 
    Animation pearfadeact = AnimationUtils.loadAnimation(this, R.anim.fadein); 

이미지 뷰 내가 강조했습니다이 이미지 뷰를 제거합니다. 문제는 이미 같은 이름의 멤버가있을 때 로컬 변수를 생성한다는 것입니다.

1

글쎄, NullPointerException이 있습니다. 변수 선언은 클래스의 멤버 변수 정의를 숨 깁니다

ImageView pearfade = (ImageView) findViewById(R.id.pearish) 

한다 : 당신의 startAnimating 방법에 다음과 같은 코드를 가지고 있기 때문에 이것은 아마도입니다. 그것을 수정해야합니다. :)

관련 문제