Android问题集锦之四十六:改包名后出现Error type 3

背景:
为了和使用Eclipse的同学并行工作了,我将原Eclipse的项目中加入build.gradle,内容如下:

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    lintOptions {
        abortOnError false
    }

    buildTypes {
        debug {
            debuggable true
            signingConfig signingConfigs.debug
        }
        release {
            debuggable false
            signingConfig signingConfigs.debug
            minifyEnabled true
            proguardFiles 'proguard-project.txt'
        }
    }
}

一直很好的工作着,直到今天我心血来潮将项目的包名在manifest中修改了,也在各个文件中修改了此包名。编译通过,但是运行时报错:

Launching application: com.foo.app/com.foo.app.main.
DEVICE SHELL COMMAND: am start -n "com.foo.app/com.foo.app.main"
Starting: Intent { cmp=com.foo.app/.main}
Error type 3
Error: Activity class {com.foo.app/com.foo.app.main} does not exist.

这真是见鬼了,我clean build,并将代码目录下的bin也都删掉了。重启Android Studio,还是有问题。我也将app从手机中卸载再调试,等等等等。尝试了很多办法。stackoverflow那篇帖子上的方法也尝试了许多。

当然,我知道新建一个项目并将此项目中的文件拷过去,一定能够运行。但我不想这么做。

最后,还是参考网友,将build.gradle中android下加入applicationId为新包名,解决了这个问题。

  defaultConfig {
    applicationId "com.yourpackage.yourapplication"
  }

参考:
http://stackoverflow.com/questions/7071271/activity-class-does-not-exist

你可能感兴趣的:(修改包名,Applicatio)