您的位置:首页 > 移动开发 > Android开发

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

2015-11-15 23:07 555 查看
背景:

为了和使用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