发送短信时没有发现活动异常

问题描述:

我正在使用意图发送短信与图像的Android应用程序,但我收到异常ActivityNotFoundException。 AndroidManifest.xml中发送短信时没有发现活动异常

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.shareviamms" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Java代码我想在Android 4.2

Intent sendIntent = new Intent(Intent.ACTION_SEND);  sendIntent.setClassName("com.android.mms","com.android.mms.ui.ComposeMessageActivity"); 
     sendIntent.putExtra("sms_body", "some text"); 
     sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/32X32.png")); 
     sendIntent.setType("image/png"); 
     startActivity(sendIntent); 

堆栈跟踪

12-14 23:07:55.332: E/AndroidRuntime(11322): FATAL EXCEPTION: main 
12-14 23:07:55.332: E/AndroidRuntime(11322): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.shareviamms/com.example.shareviamms.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml? 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread.access$600(ActivityThread.java:146) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1239) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.os.Looper.loop(Looper.java:137) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread.main(ActivityThread.java:5085) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at java.lang.reflect.Method.invokeNative(Native Method) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at java.lang.reflect.Method.invoke(Method.java:511) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at dalvik.system.NativeStart.main(Native Method) 
12-14 23:07:55.332: E/AndroidRuntime(11322): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml? 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Activity.startActivityForResult(Activity.java:3370) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Activity.startActivityForResult(Activity.java:3331) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Activity.startActivity(Activity.java:3566) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Activity.startActivity(Activity.java:3534) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at com.example.shareviamms.MainActivity.onCreate(MainActivity.java:20) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Activity.performCreate(Activity.java:5104) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
12-14 23:07:55.332: E/AndroidRuntime(11322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2151) 
12-14 23:07:55.332: E/AndroidRuntime(11322): ... 11 more 
+0

发布清单 – user2511882

+0

我添加了上面的清单。 – android

+0

同时发布您的错误的全文。 – hichris123

关于意见,我更新了答案。 有三种方法来处理AcitivityNotFOund:

1)继续尝试这种方法,但捕获ActivityNotFoundException。 2)如果您遇到ActivityNotFoundException,请尝试启动用户可能已安装的其他应用程序(VZMessages,Zlango Messaging,Handcent,ChompSMS等)。

3)如果它们都失败了,让你的用户知道你想发送一个彩信,然后启动这个intent而不指定这个类。这样,用户就可以选择实际发送MMS消息的应用程序

+0

不工作在我的情况。 – android

+0

把uri放在意图中。意图sendIntent =新的意图(Intent.ACTION_SEND,uri.parse(“file:///sdcard/32X32.png”)) – user2511882

+0

并将其更改为ACTION_SENDTO – user2511882