2011-08-26 135 views
0

这是清单文件Android应用程序没有运行(错误:应用程序意外停止运行,请重试。)

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="net.learn2develop.SMSMessaging" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="10" /> 
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> 
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".SMS" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
</manifest> 

这是XML文件(main.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" 
    > 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Enter the phone number of recipient" 
     />  
    <EditText 
     android:id="@+id/txtPhoneNo" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     /> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"   
     android:text="Message" 
     />  
    <EditText 
     android:id="@+id/txtMessage" 
     android:layout_width="fill_parent" 
     android:layout_height="150px" 
     android:gravity="top"   
     />   
    <Button 
     android:id="@+id/btnSendSMS" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Send SMS" 
     />  
</LinearLayout> 

这是java文件(SMS.java): -

package net.learn2develop.SMSMessaging; 

import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import android.telephony.SmsManager; 

public class SMS extends Activity 
{ 
    Button btnSendSMS; 
    EditText txtPhoneNo; 
    EditText txtMessage; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);   

     btnSendSMS = (Button) findViewById(R.id.btnSendSMS); 
     txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo); 
     txtMessage = (EditText) findViewById(R.id.txtMessage); 


     btnSendSMS.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      {     
       String phoneNo = txtPhoneNo.getText().toString(); 
       String message = txtMessage.getText().toString();     
       if (phoneNo.length()>0 && message.length()>0) { 
        sendSMS(phoneNo, message); 
       } else { 
        Toast.makeText(getBaseContext(), 
         "Please enter both phone number and message.", 
         Toast.LENGTH_SHORT).show(); 
       } 
      } 
     });   
    } 
    private void sendSMS(String phoneNumber, String message) 
    {   
     PendingIntent pi = PendingIntent.getActivity(this, 0, 
      new Intent(this, SMS.class), 0);     
     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber, null, message, pi, null);   
    } 
} 

的错误部分: -

08-26 23:06:41.040: ERROR/AndroidRuntime(411): FATAL EXCEPTION: main 
08-26 23:06:41.040: ERROR/AndroidRuntime(411): java.lang.RuntimeException: Unable to start activity ComponentInfo{net.learn2develop.SMSMessaging/net.learn2develop.SMSMessaging.SMS}: java.lang.NullPointerException 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.os.Looper.loop(Looper.java:123) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at dalvik.system.NativeStart.main(Native Method) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411): Caused by: java.lang.NullPointerException 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at net.learn2develop.SMSMessaging.SMS.onCreate(SMS.java:31) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
08-26 23:06:41.040: ERROR/AndroidRuntime(411):  ... 11 more 
+0

在其上的错误发生被定位到Android 2.3.3版本仿真器。 10 rev 2(姜饼)。对不起,如果问题是非结构化/非详细的 –

+0

你能调试程序吗?从日志我断定异常继续btnSendSMS.setOnClickListener(new View.OnClickListener(); – user370305

+0

第31行发生了什么?这是你的问题:在net.learn2develop.SMSMessaging.SMS.onCreate(SMS.java:31 ) – Jack

回答

1

你得到在管线31一个NullPointerException其是其中btnSendSMS.setOnClickListener(

可能与该ID的视图没有被发现。

作为一种变通方法添加

if (btnSendSMS != null) { 
    btnSendSMS.setOnClickLi...... 
} 
+0

我不知道如何,但它现在开始运行..(可能是重新启动操作系统后),但短信不会传递到使用此SMS应用程序的另一个模拟器。在安装应用程序的模拟器上(5554,例如)能够发送(到5556),并显示SMS已成功发送,但在另一个模拟器(5556)上未发送。请帮忙。 –

相关问题