android应用程序在哪找,找不到应用程序的错误android

长期以来,我试图开发一个应用程序,通过语音通知用户任何传入消息,我有三个类,TextSpeaker,Receiver和SpeakerService。当我启动应用程序,然后点击开始按钮,我得到运行时错误:找不到应用程序的错误android

06-21 13:54:36.088: ERROR/AndroidRuntime(528): Uncaught handler: thread main exiting due to uncaught exception

06-21 13:54:36.119: ERROR/AndroidRuntime(528): java.lang.RuntimeException: Unable to start service [email protected] with Intent { cmp=com.example.TextSpeaker/.SpeakerService }: java.lang.NullPointerException

06-21 13:54:36.119: ERROR/AndroidRuntime(528): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2882)

....

06-21 13:54:36.119: ERROR/AndroidRuntime(528): Caused by: java.lang.NullPointerException

06-21 13:54:36.119: ERROR/AndroidRuntime(528): at com.example.TextSpeaker.SpeakerService.onStart(SpeakerService.java:33)

06-21 13:54:36.119: ERROR/AndroidRuntime(528): at android.app.Service.onStartCommand(Service.java:306)

06-21 13:54:36.119: ERROR/AndroidRuntime(528): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2873)

06-21 13:54:36.119: ERROR/AndroidRuntime(528): ... 10 more

这里是我的3类: TEXTSPEAKER类:

package com.example.TextSpeaker;

import java.util.Locale;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.speech.tts.TextToSpeech;

import android.speech.tts.TextToSpeech.OnInitListener;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

// the following programme converts the text to speech

public class TextSpeaker extends Activity implements OnInitListener {

/** Called when the activity is first created. */

int MY_DATA_CHECK_CODE = 0;

public TextToSpeech mtts;

public Button button,stop_button;

//public EditText edittext;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

button = (Button)findViewById(R.id.button);

stop_button=(Button)findViewById(R.id.stop_button);

Intent myintent = new Intent();

myintent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);

startActivityForResult(myintent, MY_DATA_CHECK_CODE);

//edit text=(EditText)findViewById(R.id.edittext);

}

public void buttonClickListener(View src){

switch(src.getId())

{

case(R.id.button):

Toast.makeText(getApplicationContext(), "The service has been started\n Every new message will now be read out", Toast.LENGTH_LONG).show();

startService(new Intent(this,SpeakerService.class));

break;

case(R.id.stop_button):

Toast.makeText(getApplicationContext(), "The service has been stopped\n ", Toast.LENGTH_LONG).show();

stopService(new Intent(this,SpeakerService.class));

break;

}

}

protected void onActivityResult(int requestcode,int resultcode,Intent data)

{

if(requestcode == MY_DATA_CHECK_CODE)

{

if(resultcode==TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)

{

// success so create the TTS engine

mtts = new TextToSpeech(this,this);

mtts.setLanguage(Locale.ENGLISH);

}

else

{

//install the Engine

Intent install = new Intent();

install.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);

startActivity(install);

}

}

}

public void onDestroy(Bundle savedInstanceStatBundle)

{

mtts.shutdown();

}

//public void onPause()

//{

// super.onPause();

// // if our app has no focus

// if(mtts!=null)

// mtts.stop();

// }

@Override

public void onInit(int status) {

if(status==TextToSpeech.SUCCESS)

button.setEnabled(true);

}

}

接收机类:

package com.example.TextSpeaker;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsMessage; // supports both gsm and cdma

import android.util.Log;

import android.widget.Toast;

public class Receiver extends BroadcastReceiver{

//TextSpeaker tsp=new TextSpeaker();

public String str="";

@Override

public void onReceive(Context context, Intent intent) {

Bundle bundle = intent.getExtras();

Log.d("Receiver","Message received successfully");

SmsMessage[] msgs = null;

if(bundle!=null)

{

// retrive the sms received

Object[] pdus = (Object[])bundle.get("pdus");

msgs = new SmsMessage[pdus.length];

for(int i=0;i

{

msgs[i]=SmsMessage.createFromPdu((byte[]) pdus[i]);

str+="Message From "+msgs[i].getOriginatingAddress()+".";

str+="The message is "+msgs[i].getMessageBody().toString();

}

Toast.makeText(context,str,Toast.LENGTH_SHORT).show();

}

}

}

SERVICESPEAKER类:

package com.example.TextSpeaker;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.speech.tts.TextToSpeech;

import android.util.Log;

import android.widget.Toast;

public class SpeakerService extends Service {

Receiver rv = new Receiver();

TextSpeaker tspker = new TextSpeaker();

//public TextToSpeech mtts;

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate(){

//mtts =new TextToSpeech(getBaseContext(), null);

Log.d("SpeakerService","Service created successfully!");

//mtts.speak(rv.str, TextToSpeech.QUEUE_FLUSH,null);

}

@Override

public void onStart(Intent intent,int startid)

{

Log.d("SpeakerService","Service started successfully!");

tspker.mtts.speak(rv.str, TextToSpeech.QUEUE_FLUSH,null);

}

@Override

public void onDestroy(){

if(tspker.mtts!=null)

{

tspker.mtts.stop();

Toast.makeText(getApplicationContext(),"The service has been destroyed!", Toast.LENGTH_SHORT).show();

}

}

}

2010-06-21

pranay

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值