2011-01-25 11 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(); 
    } 



} 

Logcat:

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

私はウルPROBはラインperfade.clearAnimation(上だと思います)、


onpause FRMそれを削除編集:他の方法は、次のように宣言を設定されています上記のImageViewパーフェードをoncreateします。


とより方法をstartanimatingでこれを使用してください:


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

解決策ではありません。 – Reno

+0

ok reno編集されたsolを見ます。 –

0

私の推測では、onPause pearfade.clearAnimation();
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

に基づいて、nullであるということでしょうあなたのログ

1

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

... 
} 

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

ImageViewのは、私が強調してきたこのImageViewのを削除します。問題は、すでに同じ名前のメンバを持っているときにローカル変数を作成していることでした。

1

まあ、NullPointerExceptionがあります。

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

変数宣言は、あなたのクラスのメンバ変数の定義を隠すこと:あなたのstartAnimatingメソッドで次のコードを持っているためと考えられます。それを修正する必要があります。 :)

関連する問題