從前聽(tīng)大神同事強(qiáng)老師說(shuō)IntelliJ IDEA 功能強(qiáng)大夷野,是Jet Brains 公司開(kāi)發(fā)商業(yè)IDE(集成開(kāi)發(fā)環(huán)境)强品,同時(shí)支持Java, Scala 和Groovy。商業(yè)IDE即IntelliJ 是一款收費(fèi)的IDE,當(dāng)然了其實(shí)也有免費(fèi)的社區(qū)版本,但是很多功能都被閹割了名段。IntelliJ 除了支持Android項(xiàng)目開(kāi)發(fā),還可以搭建java web 開(kāi)發(fā)環(huán)境泣懊,功能比AS更強(qiáng)大伸辟。
阿拉最近重裝了電腦,想著干脆也裝個(gè)IntelliJ 吧馍刮,但是另一個(gè)同事說(shuō)Intellij與AS會(huì)沖突信夫。一開(kāi)始我覺(jué)得是他太嫩,不愛(ài)折騰。后面因?yàn)閍s3.0自身有一些新的坑静稻,Intellij我暫時(shí)沒(méi)弄成功警没,終于是先放下它,晚點(diǎn)再來(lái)對(duì)付姊扔。畢竟還是要上班工作的惠奸,但我是打不死的程序媛。
(一)關(guān)于注解
Error:Execution failed for task ':Framework:javaPreCompileDebug'.
Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor. Please add them to the annotationProcessor configuration.
- butterknife-7.0.1.jar (butterknife-7.0.1.jar)
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior. Note that this option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
Android Studio官網(wǎng)的說(shuō)明如下:
Use the annotation processor dependency configuration
一開(kāi)始我是先找到了解決方法恰梢,后面才看到上面的鏈接。先說(shuō)一下解決方法梗掰。在build.gradle 的defaultConfig 中添加下列內(nèi)容:
apply plugin: 'com.android.application'
android {
...
defaultConfig {
...
//大兄弟嵌言,這邊~
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
}
}
(二)關(guān)于渠道
Error:All flavors must now belong to a named flavor dimension.Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html
所有的flavors都必須屬于同一個(gè)風(fēng)格。官網(wǎng)中文解釋:組合多個(gè)產(chǎn)品風(fēng)味
解決方法就是在build.gradle中添加相應(yīng)的標(biāo)志的內(nèi)容及穗。
flavorDimensions("vas", "normal") //介個(gè)
productFlavors {
vas {
dimension 'vas'
buildConfigField "boolean", "ENABL_VAS", "true"
dimension "vas" //介個(gè)
}
normal {
dimension 'normal'
buildConfigField "boolean", "ENABL_VAS", "false"
dimension "normal" //還有介個(gè)
}
}
(三)關(guān)于Sugar
3.0Android: Sugar ORM No Such Table Exception
項(xiàng)目中用到Sugar摧茴,在3.0AS中老是提示找不到表。其實(shí)解決方法很簡(jiǎn)單埂陆,而且瀏覽的網(wǎng)站也老早就說(shuō)了該如何處理苛白,但因?yàn)槲衣┑袅岁P(guān)鍵的點(diǎn)融师,所以老是沒(méi)成功论衍。
最后!卸載設(shè)備上的舊應(yīng)用萌狂,一定要卸載鹃栽!然后重新運(yùn)行新的應(yīng)用就OK了躏率。
(四)關(guān)于Manifest merger
這是我第一次知道原來(lái)Manifest還有merge沖突的情況出現(xiàn)。有趣有趣民鼓。Execution failed for task ':AppMain:processVasNormalDebugManifest'.
Manifest merger failed with multiple errors, see logs
我的項(xiàng)目中有一個(gè)application和一個(gè)library薇芝,這兩個(gè)module都有自己的manifest。原來(lái)as最后會(huì)幫我們將兩個(gè)manifest合并起來(lái)丰嘉,所以當(dāng)二者設(shè)置的內(nèi)容不一致夯到,就會(huì)起沖突,merge失敗饮亏。原理就是這樣了耍贾。對(duì)比一下兩個(gè)manifest中有什么值是大不同的,修改一下就好了克滴。那要怎么看合并的結(jié)果是怎么樣的呢逼争?
這種和編譯器作斗爭(zhēng)的事情也是挺有趣的观话,探究我們查資料解決問(wèn)題的能力,多思考越平,相信自己是最棒滴~