AndroidStudio3.0 Canary 的使用记录

来源:互联网 发布:俄军战斗力 知乎 编辑:程序博客网 时间:2024/06/06 00:42

总体来说界面更好看了,添加了Kotlin支持,Android Profiler特别炫,但是3.0改动较大,出现很多问题,解决了一个又一个,最后app也没有调通,把开荒过程记录在下。

使用Canary导入原有项目

  1. 首先升级gradle,这两步可以通过AS的提示自动完成:

    1. protect的build.gradle:
      dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha1' }
    2. gradle-wrapper.properties:
      distributionUrl=https://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip
  2. 原有lambda报错:

    Warning:One of the plugins you are using supports Java 8 language features. To try the support built into the Android plugin, remove the following from your build.gradle:    apply plugin: 'me.tatarka.retrolambda'To learn more, go to https://d.android.com/r/tools/java-8-support-message.html
    Plugin with id 'me.tatarka.retrolambda' not found. Open File\

    处理办法:删除app的build.gradle的dependencies中:classpath 'me.tatarka:gradle-retrolambda:3.2.5'
    删除project的build.gradle中:apply plugin: 'me.tatarka.retrolambda'

  3. 报错

    Error:Execution failed for task ':app:mockableAndroidJar'.> Could not initialize class com.android.ide.common.util.ReadWriteProcessLockError:Execution failed for task ':app:transformClassesWithDesugarForDebug'.> Could not initialize class com.android.ide.common.util.ReadWriteProcessLock

    卡死在这个地方,没有解决。

  4. 之前还有一个错误,现在没有重现,是有关于java 8的问题,根据AS的提示在app的build.gradle的defaultConfig中加了一句话后解决。

使用Canary新建项目

既然导入原有项目卡住了,就新建一个试试吧,正常步骤新建项目,不同的是选择上支持Kotlin
这里写图片描述
新建成功后模版Activity报一堆错误,大多是Kotlin语法不对,包括@Override应修改为方法前的override,this@LoginActivity缺失等,这些可以自行修改。
最关键一个问题,继承自AppCompatActivity的所有方法都无法引用,包括getString等,刚开始我以为是Kotlin语法写错的原因,后来发现导入原Java应用也有这个问题:
这里写图片描述
这里写图片描述
这个Java项目使用原AS2.3就没有问题,可能是Canary这个版本还有不少配置要修改,只是没有时间再看了,还是先用2.3学学Kotlin, Canary等等大神们的使用经验再说吧。

新进展

这两天打算重新研究3.0, 打开后把这两步处理完就直接跑起来了, 什么鬼?

1. protect的build.gradle:    `dependencies {  classpath 'com.android.tools.build:gradle:2.3.0' }`2. gradle-wrapper.properties:    `distributionUrl=https://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip`