Android Studio3.0.1填坑

作者: 小阿拉 | 来源:发表于2018-01-22 09:55 被阅读0次

    从前听大神同事强老师说IntelliJ IDEA 功能强大,是Jet Brains 公司开发商业IDE(集成开发环境),同时支持Java, Scala 和Groovy。商业IDE即IntelliJ 是一款收费的IDE,当然了其实也有免费的社区版本,但是很多功能都被阉割了。IntelliJ 除了支持Android项目开发,还可以搭建java web 开发环境,功能比AS更强大。

    阿拉最近重装了电脑,想着干脆也装个IntelliJ 吧,但是另一个同事说Intellij与AS会冲突。一开始我觉得是他太嫩,不爱折腾。后面因为as3.0自身有一些新的坑,Intellij我暂时没弄成功,终于是先放下它,晚点再来对付。毕竟还是要上班工作的,但我是打不死的程序媛。

    (一)关于注解

    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官网的说明如下:
    Use the annotation processor dependency configuration
    一开始我是先找到了解决方法,后面才看到上面的链接。先说一下解决方法。在build.gradle 的defaultConfig 中添加下列内容:

    apply plugin: 'com.android.application'
    
    android {
      ...
        defaultConfig {
           ...
            //大兄弟,这边~
            javaCompileOptions {
                annotationProcessorOptions {
                    includeCompileClasspath true
                }
            }
        }
    }
    

    (二)关于渠道

    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都必须属于同一个风格。官网中文解释:组合多个产品风味
    解决方法就是在build.gradle中添加相应的标志的内容。

    flavorDimensions("vas", "normal") //介个
        productFlavors {
            vas {
                dimension 'vas'
                buildConfigField "boolean", "ENABL_VAS", "true"
                dimension "vas"  //介个
            }
            normal {
                dimension 'normal'
                buildConfigField "boolean", "ENABL_VAS", "false"
                dimension "normal"   //还有介个
            }
    
        }
    

    (三)关于Sugar

    3.0Android: Sugar ORM No Such Table Exception

    项目中用到Sugar,在3.0AS中老是提示找不到表。其实解决方法很简单,而且浏览的网站也老早就说了该如何处理,但因为我漏掉了关键的点,所以老是没成功。

    instant run莫勾选
    最后!卸载设备上的旧应用,一定要卸载!然后重新运行新的应用就OK了。

    (四)关于Manifest merger

    Execution failed for task ':AppMain:processVasNormalDebugManifest'.
    Manifest merger failed with multiple errors, see logs

    这是我第一次知道原来Manifest还有merge冲突的情况出现。有趣有趣。 项目目录

    我的项目中有一个application和一个library,这两个module都有自己的manifest。原来as最后会帮我们将两个manifest合并起来,所以当二者设置的内容不一致,就会起冲突,merge失败。原理就是这样了。对比一下两个manifest中有什么值是大不同的,修改一下就好了。那要怎么看合并的结果是怎么样的呢?

    比如我打开AppMain的manifest,选择下面的Merged Manifest 模式,就可以看到最终合并结果了。右边一长串Merging Errors的文字就是我们需要改的地方了。 AppMain的manifest 我记得自己的情况是:AppMain的manifest我设置android:allowBackup="false",然后FramewFramework的manifest为android:allowBackup="true",然后改成都为false就好了。大家要看自己的实际情况是什么,再做相应的修改。

    这种和编译器作斗争的事情也是挺有趣的,探究我们查资料解决问题的能力,多思考,相信自己是最棒滴~

    相关文章

      网友评论

        本文标题:Android Studio3.0.1填坑

        本文链接:https://www.haomeiwen.com/subject/klgxoxtx.html