Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 启动意图时随机活动NotFoundException_Android_Exception - Fatal编程技术网

Android 启动意图时随机活动NotFoundException

Android 启动意图时随机活动NotFoundException,android,exception,Android,Exception,我有一个应用程序,已经运行了数百次,但在尝试启动活动时很少出现异常: Intent tIntent = new Intent(); tIntent.setClass(App.ctx, MyClassActivity.class); startActivity(tIntent); 我在舱单中声明: activity android:name="MyClassActivity" android:launchMode="singleTask" 例外情况: 01-01 10:41:33.723:

我有一个应用程序,已经运行了数百次,但在尝试启动活动时很少出现异常:

Intent tIntent = new Intent();
tIntent.setClass(App.ctx, MyClassActivity.class);
startActivity(tIntent);
我在舱单中声明:

activity android:name="MyClassActivity" android:launchMode="singleTask"
例外情况:

 01-01 10:41:33.723: E/AndroidRuntime(3867): android.content.ActivityNotFoundException: 
 Unable to find explicit activity class {my.package/my.package.MyClassActivity}; 
 have you declared this activity in your AndroidManifest.xml?
有什么线索可以说明这是什么原因吗?异常是非常随机和罕见的。应用程序在emulator上启动


我已经阅读了这个问题,但有一个问题是系统性的,而不是像这里这样随机的。

请像这样在清单文件中添加这两个活动

                   <activity android:name=".MyClassActivity"
              android:label="@string/app_name"
              android:theme="@android:style/Theme.NoTitleBar"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="com.pkg.MyClassActivity"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity> 

如果您在模拟器中运行该程序,那么我将假设您经常调试更改。如果不是这样,请澄清,但是,我现在将根据这个假设回答

每当应用程序在开发或可调试环境中运行时,无论是在模拟器上还是在设备上,都会发生很多事情。因此,它可能会扭曲加载时间、安装、卸载等。最常见的情况是,在已经启动的设备(即通过USB插入的设备或在开发过程中保持打开状态的仿真器)上进行快速更改后,会发生这种情况

要在设备上启动此操作,请执行以下操作: 1.重建应用程序(如果有任何更改) 2.检查应用程序是否与设备上的应用程序匹配。 3.卸载/重新安装应用程序 4.运行应用程序

在此过程中,如果事情发生得太快,它可能会误读您的清单文件并“损坏”(实际上不是)您的构建。如果它只是间歇性地发生,那么它只是模拟器失灵了一分钟。如果问题发生了,然后一直持续到您做一些特定的事情,那么就是开发环境丢失了。对于第一个问题,你真的什么都做不了,只是有时候点击得太快了。。。对于第二种情况,只需“清理”项目(在Eclipse中,这是通过单击project->clean来完成的)。这将删除缓存的信息,并重新从头开始构建它。它使您的应用程序看起来像是全新的。我还发现,有时还可以从设备上手动卸载应用程序。我只在使用多个库的复杂应用程序中,或者当ContentResolver由于内容错误而挂起时才这样做

希望这有帮助,
FuzzicalLogic

感谢您的全面回答。我还怀疑这是emulator的一个小故障,但据我记忆所及,当异常发生时,它处于非常干净的状态(例如,当我单击上一个版本时,没有额外的版本上传到emulator)。此外,我经常使用adb命令行卸载应用程序,因为我需要清除首选项,这是对我来说最快的方法。我不认为这是emulator中的一个小故障,而是adb本身的问题。我在Eclipse中开发,这种情况在设备和仿真上都会发生。发生这种情况时,我曾经重置adb,它会修复它,但我发现上面的方法更快更可靠,因为adb有时不会重新启动。将此添加到清单中的原因是什么?我很好奇,因为这个应用程序在数百台没有附加过滤器的设备上运行得很好。你可以在这里试试:,抱歉自我推销,但也许会有帮助。