【问题标题】:no activity found to handle intent没有发现处理意图的活动
【发布时间】:2012-02-20 06:45:33
【问题描述】:

我发现以下错误:

02-20 09:57:15.324: ERROR/AndroidRuntime(1180): FATAL EXCEPTION: main
02-20 09:57:15.324: ERROR/AndroidRuntime(1180): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.INSERT dat=content://com.funfil.provider.OCR/funfildata/ }
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1409)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.Activity.startActivityForResult(Activity.java:2827)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.Activity.startActivity(Activity.java:2933)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.funfil.OCRProjectActivity.onOptionsItemSelected(OCRProjectActivity.java:245)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.Activity.onMenuItemSelected(Activity.java:2205)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:748)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.view.View$PerformClick.run(View.java:9080)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.os.Handler.handleCallback(Handler.java:587)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.os.Handler.dispatchMessage(Handler.java:92)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.os.Looper.loop(Looper.java:130)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at android.app.ActivityThread.main(ActivityThread.java:3683)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at java.lang.reflect.Method.invokeNative(Native Method)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at java.lang.reflect.Method.invoke(Method.java:507)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-20 09:57:15.324: ERROR/AndroidRuntime(1180):     at dalvik.system.NativeStart.main(Native Method)

我的清单文件是:--------- 其中 funfildata 是我的应用程序中的表名:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.funfil"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">


        <provider android:name="OCRProvider"
            android:authorities="com.funfil.provider.OCR"
            >

        </provider>

        <activity android:name="OCRProjectActivity" android:label="@string/OCR_Customer_list">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.EDIT" />
                <action android:name="android.intent.action.PICK" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.dir/vnd.funfil.funfildata" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.GET_CONTENT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/vnd.funfil.funfildata" />
            </intent-filter>
        </activity>

        <activity android:name="OCREditor"

            android:screenOrientation="sensor"
            android:configChanges="keyboardHidden|orientation"
        >
            <!-- This filter says that we can view or edit the data of
                 a single note -->
            <intent-filter android:label="@string/resolve_edit">
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.EDIT" />
                <action android:name="com.android.notepad.action.EDIT_NOTE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/vnd.funfil.funfildata" />
            </intent-filter>

            <!-- This filter says that we can create a new note inside
                 of a directory of notes.  The INSERT action creates an
                 empty note; the PASTE action initializes a new note from
                 the current contents of the clipboard. -->
            <intent-filter>
                <action android:name="android.intent.action.INSERT"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.dir/vnd.funfil.funfildata" />
            </intent-filter>

        </activity>



    </application>
</manifest>

我也检查了带有 URI:content://com.funfil.provider.OCR/funfildata 的应用程序。

我将一个新活动称为

startActivity(new Intent(Intent.ACTION_INSERT, getIntent().getData()));

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您想使用一组特定的 uri 启动活动,则必须在清单文件中使用 scheme 定义您的活动:

    <intent-filter . . . >
        <data android:scheme="content" android:host"com.funfil.provider.OCR" />
    </intent-filter>
    

    【讨论】:

    • 我不这么认为。 AFAIK,一个基于 content:// URI 的隐式过滤器自动从具有相同权限的 ContentProvider 的 getType 接收 MIME 类型。 OP 的意图过滤器看起来不错。
    【解决方案2】:

    检查您的 ContentProvider 的 getType("content://com.funfil.provider.OCR/funfildata/") 是否返回 vnd.android.cursor.dir/vnd.funfil.funfildata

    【讨论】:

      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 2013-08-24
      • 2022-11-20
      • 2015-12-03
      相关资源
      最近更新 更多