当前位置: 代码迷 >> Ruby/Rails >> Android有关问题集锦之四十六:改包名后出现Error type 3
  详细解决方案

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

热度:273   发布时间:2016-04-29 02:08:24.0
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 3Error: 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

版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案