Error type 3

问题现象:无论是调试运行程序还是通过命令行运行程序,都会以Error type 3的提示。

如下:

Error while executing: am start -n "package_name/package_name.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=package_name/.MainActivity } Error type 3 Error: Activity class {package_name/package_name.MainActivity} does not exist. Error while Launching activity

解决方案:

1.无效的方案:尝试了clean project,重新新建android studio项目,重启电脑,重启android设备都不行。

2.有效的方案:在build.gradle下面修改android->default config->application id可以解决问题,

即,把com.toycloud.toycloudassistant修改成com.toycloud.toycloudassistant2。

具体如下

    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.toycloud.toycloudassistant2"
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

3.有效的方案:不过,要从根本上解决问题只能重新烧录android系统。重新烧录可以清空包管理器的数据库,从而解决问题。


通过上面的现象来看,这个问题的根因还是包管理器出现了bug。

出现此现象时,调用pm.queryIntentActivities返回是空,而传入的条件仅仅是限制了包名。


导致问题的原因很可能是之前调用了setComponentEnabledSetting方法。

//        PackageManager pm = getPackageManager();
//        ComponentName cn = new ComponentName(this,MainActivity.class);
//        pm.setComponentEnabledSetting(cn,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
//                PackageManager.DONT_KILL_APP);



你可能感兴趣的:(Error type 3)