//애니메이션 class

package main.sandglass;

import main.sandglass.R;
import android.app.*;
import android.content.*;
import android.graphics.drawable.*;
import android.os.*;
import android.view.*;
import android.view.animation.*;
import android.widget.*;

public class FrameAni extends Activity {
 LinearLayout mLinear;
 AnimationDrawable mAni;
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.draw_frameani);
  
  ImageView img = (ImageView)findViewById(R.id.count);
  mAni = (AnimationDrawable)img.getBackground();
  
  Button btn = (Button)findViewById(R.id.start);
  btn.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    mAni.start();
   }
  });
  
  btn = (Button)findViewById(R.id.stop);
  btn.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v) {
    mAni.stop();
   }
  });
    
  
   btn = (Button)findViewById(R.id.rotate);
      btn.setOnClickListener(new Button.OnClickListener() {
       public void onClick(View v) {
        Animation ani = null;
          switch (v.getId()) {
          case R.id.rotate:
           ani = AnimationUtils.loadAnimation(FrameAni.this, R.anim.rotate);
           break;
          }
          mLinear.startAnimation(ani);
       }
      });  
 }
}

//anim폴더에 rotate.xml 소스

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/accelerate_interpolator">
 <rotate
  android:fromDegrees="0"
  android:toDegrees="360"
  android:pivotX="50%"
  android:pivotY="50%"
  android:duration="3000"
 />
</set>


//레이아웃에 xml소스

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImageView 
 android:id="@+id/count" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/frame"
 android:layout_weight="2"
 />

<Button
 android:id="@+id/start" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Start"
 android:layout_weight="1"

 />
<Button
 android:id="@+id/stop" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Stop"
 android:layout_weight="1"
 />
 
<Button
 android:id="@+id/rotate" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Rotate"
 android:layout_weight="1"
 />
</LinearLayout>


여기서 컴파일 시키면 다른부분은 잘돌아가는데
rotate 버튼을 눌렀을떄 강제종료 됩니다.

log cat 에

02-09 07:09:37.342: WARN/dalvikvm(385): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
02-09 07:09:37.352: ERROR/AndroidRuntime(385): Uncaught handler: thread main exiting due to uncaught exception
02-09 07:09:37.393: ERROR/AndroidRuntime(385): java.lang.NullPointerException
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at main.sandglass.FrameAni$3.onClick(FrameAni.java:46)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.View.performClick(View.java:2364)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.View.onTouchEvent(View.java:4179)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.widget.TextView.onTouchEvent(TextView.java:6541)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.View.dispatchTouchEvent(View.java:3709)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.os.Looper.loop(Looper.java:123)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at android.app.ActivityThread.main(ActivityThread.java:4363)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at java.lang.reflect.Method.invokeNative(Native Method)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at java.lang.reflect.Method.invoke(Method.java:521)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-09 07:09:37.393: ERROR/AndroidRuntime(385):     at dalvik.system.NativeStart.main(Native Method)


이라고 나오는데 어떻게 잘못된건지
고수님들 알려주세요 ㅜㅜ