編輯:關於Android編程
背景:
為了和使用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
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
本文主要有以下內容:* 自定義View的分類* 自定義View的注意事項* 自定義View的實現* 自定義View使其支持wrap_content和padding* 自定
之前寫過一篇Eclipse制作.so的文章,使用的是GNUstep模擬Linux環境,過程現在看來是想相當麻煩,後來發現一個簡單的方法就是通過項目右鍵添加Native S
在android裡,有4種activity的啟動模式,分別為:“standard” (默認)“singleTop”“singleTask”“singleInstance”
Android的Service若使用非綁定式的創建,則創建後將無法再與它取得聯系,即無法傳遞消息參數等; 所以如果希望創建後仍然與其存在聯系,那麼可以參考我的前幾篇博客《