Problema com TextView

Bom tarde,
Estou brincando de movimentar imagem na tela e tal, mas quero fazer com que por exemplo quando a imagem que estou movimentando chegue em determinado ponto x,y o meu textview que tem a pontuação altere para exibir a pontuação total até o momento, porém SEMPRE que chego no tal ponto x,y e a textview deveria alterar dá um erro na aplicação (“Sorry! the application Movimentação de Imagens (process br.com.android) has stopped unexpectedley. Please try again”) e ela encerra.

se alguém puder me ajudar fico grato.

Segue o meu código e o xml.

package br.com.android;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;

public class MovImg extends View {

TextView tvPontuacao;

private Drawable imgBola;
int x, y;
int pontuacao = 0;
int pulo = 10;
int largura, altura;

public MovImg(Context context, AttributeSet attrs) {
    super(context, attrs);
   
    //Imagem de fundo
    setBackgroundResource(R.drawable.img_quadra);
    //Recupera a imagem
    imgBola = context.getResources().getDrawable(R.drawable.bola_basket_32x32);
   
    //Recupera a largura e a altura da imagem
    largura = imgBola.getIntrinsicWidth();
    altura = imgBola.getIntrinsicHeight();
   
    //Configura a view para receber o foco e tratar eventos de teclado
    setFocusable(true);
}

@Override
//chamado quando a tela é redimensionada ou iniciada
protected void onSizeChanged(int width, int height, int oldw, int oldh){
    super.onSizeChanged(width, height, oldw, oldh);
   
    //o width e height representam a largura e altura em pixels
    x = width / 2 - (largura / 2);
    y = height / 2 - (altura / 2);
}

@Override
public void onDraw(Canvas canvas){
    super.onDraw(canvas);
   
    //define os limites/área para desenhar
    imgBola.setBounds(x, y, x + largura, y + altura);
    //desenha a imagem
    imgBola.draw(canvas);
}

@Override
public boolean onKeyDown(int codigoTecla, KeyEvent evento){
    boolean redesenhar = true;
    switch(codigoTecla){
        case KeyEvent.KEYCODE_DPAD_UP : y -= pulo; break;
        case KeyEvent.KEYCODE_DPAD_DOWN : y += pulo; break;
        case KeyEvent.KEYCODE_DPAD_LEFT : x -= pulo; break;
        case KeyEvent.KEYCODE_DPAD_RIGHT : x += pulo; break;
        default : redesenhar = false;
    }
   
    if((x >= 100 && x <= getWidth()) && (y >= 0 && y <=100)){
        tvPontuacao = (TextView) findViewById(R.id.tvPontuacao);
        pontuacao += 2;
        tvPontuacao.setText("Pontuação: " + pontuacao);
        x = getWidth() / 2 - (largura / 2);
        y = getHeight() / 2 - (altura / 2);
    }
    if(x - (largura / 2) < 0){
        x = (largura / 2) - pulo;
    }
    if(y - (altura / 2) < 0){
        y = (altura / 2) - pulo;
    }
    if(x + (largura) > getWidth()){
        x = (getWidth() - largura/2) - (pulo+4);
    }
    if(y + (altura) > getHeight()){
        y = (getHeight() - altura/2) - (pulo+3);
    }
    if(redesenhar){
        invalidate();
        return true;
    }
    return super.onKeyDown(codigoTecla, evento);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}

@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom){
    super.onLayout(changed, left, top, right, bottom);
}

}

XML:

<?xml version="1.0" encoding="utf-8"?>




<br.com.android.MovImg
android:id="@+id/MovImg"
android:layout_width="wrap_content"
android:layout_height=“wrap_content”
/>

(para deixar claro estou seguindo os passos do livro de Android 2.2 porém com um pouco de modificações)

Fala brother, faça o seguinte, copie o seu log e cole aqui que fica mais facil de saber o que ta rolando com sua aplicação.

Cara deixa falar ainda sou leigo nessa vida de Android e tal, procurei no meu eclipse o tal do log, e acredito que é o LogCat neh??!!

Quando dá erro na aplicação aparece no log…

05-30 13:15:03.255: WARN/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 390 uid 10032
05-30 13:15:12.226: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{44f67668 br.com.android/.AppMovImg}

Se não for isso me desculpe, e me diga aonde encontro o que vc realmente deseja.

Vlw

Essa não é a mensagem. Esse realmente é o Log, mas não é esse o erro.

Provavelmente seu problema é estar chamando o setText fora da UIThread.