Android studio2.3.3升级到3.1.2坑(小记)

1.grade配置Error: Could not find com.android.tools.build:gradle:2.2.1.

解决方法与Maven仓库有点像:进入

D:\software\android\android-studio-ide-145.3276617-windows\android-studio\gradle\m2repository\com\android\tools\build\gradle

将项目中的build.gradle文件中

dependencies { classpath 'com.android.tools.build:gradle:2.2.1'}

改为

dependencies { classpath 'com.android.tools.build:gradle:3.1.2'}

2.All flavors must now belong to a named flavor dimension.

在module下的build.gradle中添加一行代码即可解决:

android{ ... flavorDimensions "versionCode" ...}

3.升级到Android Studio 3.1,重新构建项目时报错,主要错误为:

The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin. Perhaps you misspelled something?
instrumentTest已被废弃,新的Gradle插件已经不支持。instrumentTest需要修改为androidTest。

修改后,sourceSets相关内容类似:

android { buildToolsVersion "27.0.3" compileSdkVersion 24 sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } androidTest.setRoot('tests') }}

4. AAPT2 编译报错 AAPT2 error

报错

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
解决:在gradle.properties中关闭APPT2 编译

android.enableAapt2=false

注:如果是eclipse转到as上的项目,可能没有gradle.properties文件,请在项目根目录中手动创建

5.升级完Android Stadio 3.1以后

将所有的compile变为implementation 后,clean和rebuild都没有发现错误,唯独在run的时候出现了以下错误:

原因及解决办法

原因:按照android stadio 3.1的要求,需要把gradle版本升级为 4.4及以上,但是gradle 4.4及以上要求将依赖api的compile换成implementation。而implementation声明的依赖没办法传递到module以外,即该module 以外module没办法引用到implementation声明的api。

即:module A implementation libA,而 moduleB implementation module A,那么module B 引导 libA 中的api,不然在build的时候会报org.gradle.api.internal.tasks.compile.CompilationFailedException。
解决办法:将compile 替换为 api即可,也就是如果有外部引用,则换成:api,剩下的换成:implementation。

示例:

dependencies { api fileTree(dir: 'libs', include: ['*.jar']) testImplementation 'junit:junit:4.12' api 'com.android.support:support-v4:26.1.0' api 'com.android.support:appcompat-v7:26.1.0' api 'com.google.code.gson:gson:2.8.2' api 'com.j256.ormlite:ormlite-core:4.48' api 'com.j256.ormlite:ormlite-android:4.48'

ps:解决办法:

Android 6.0(api 23)已经不支持HttpClient了,在build.gradle中 加入 useLibrary 'org.apache.http.legacy'就可以了,如图:

Error:(633, 16) 错误: 找不到符号 符号: 方法 sqrt(float) 位置: 类 FloatMath

解决方案

原因是Android6.0不支持FloatMath.sin()了,主要有两个方法可以解决。

方法一:

用23一下的SDK版本进行编译。将gradle.build文件里(包括project的gradle.build和module的gradle.build)的compileSdkVersion设为23以下。

方法二:

将上面报错的地方,即 用Math类替换FloatMath类,Math.sin();

方法三 :

(float)Math.sqrt 替换 FloatMath.sqrt

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Android Studio无法检测新版本问题解决

    大家都知道Android Studio可以直接在"Menu - Check for Updates..."自动检测并更新版本,还可以在弹出的检查框中点击"Updates"dialog设置更新的配置,如图: 问题: 但是今天发现个奇怪的现象:我目前的as版本为3.0.1,但是官方稳定版已经更新到3.1.4,点击Check for Updates更新,却告诉我已经是最新版本了... 解决: 出Bug了么?并不是,原因是不知什么时候更新提示框出来后,手残点击了"

  • Android Studio 报错“app:processDebugResources"解决方法

    Android Studio 报错"app:processDebugResources"解决方法 Android Studio项目Build的时候报了这么一个错误: Error:Execution failed for task ':app:processDebugResources'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Pro

  • Android Studio启动报错Java 1.8 or later is required的解决方法

    错误描述 在公司电脑上运行Android Studio 2.2已经有一段时间了,但是自己的笔记本上还是用的Android Studio 1.5,今天晚上下了一个Android Studio 2.2压缩包,解压后启动Android Studio 2.2就报错了,错误如下所示: Unsupported Java Version : Cannot start under Java 1.7.0_04-b22 : Java 1.8 or later is required. 分析错误 查看当前电脑的Jav

  • android studio3.0.1无法启动Gradle守护进程的解决方法

    今天写项目突然出现了无法启动Gradle的bug,如下图 然后就看了log日志: 这个问题是我第一次看见,然后就开始了各种百度,有说需要在Android/.gradle文件夹下面添加gradle.properties文件的,还有是在项目根目录的gradle.properties文件里面添加org.gradle.jvmargs=-Xmx512M的,结果测试了都没有效果,最后还是在另一篇博客中看到了解决办法: 添加环境变量: 变量名:_JAVA_OPTIONS 变量值:-Djava.net.pref

  • 详解Androidstudio3.0 关于Gradle报错的问题(小结)

    前言 升级Android Studio to 3.0 canary 1版本后,之前一个正常的Project,一直报错,报错内容如下 Error:Failed to complete Gradle execution. Cause: The version of Gradle you are using (3.3) does not support the forTasks() method on BuildActionExecuter. Support for this is available

  • Android Studio报错Manifest merger failed with multiple errors

    1.Error:Execution failed for task ':XXXX:processDebugManifest'. > Manifest merger failed with multiple errors, see logs 原因: AS的Gradle插件默认会启用Manifest Merger Tool,若Library项目中也定义了与主项目相同的属性(例如默认生成的android:icon和android:theme),则此时会合并失败,并报上面的错误. 解决方法有以下2种:

  • Android Studio 引用外部依赖时报错的解决方法

    Android Studio 在引用外部依赖时,发现一直无法引用外部依赖.刚开始以为是墙的问题,尝试修改Gradle配置,未解决问题. 最终发现原来是在Android Sudio安装优化配置时,将Gradle设置为了离线工作模式 解决方法: 只需打开File->Settings->Build,Execution,Deployment->Gradle->取消offline work勾选 总结 以上所述是小编给大家介绍的Android Studio报错Unable to resolve

  • androidstudio3.0使用butterknife报错解决的解决方法

    问题 在添加butterKnife依赖的时候出现如下错误: 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. - butterkn

  • Android Studio 报错failed to create jvm error code -4的解决方法

    安装完 Android Studio 后启动,却报错如下: 复制代码 代码如下: failed to create jvm error code -4 这一般应是内存不够用所致,解决方法参考如下. 打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码: 复制代码 代码如下: -Xmx512m 为 -Xmx256m 保存后应即可正常打开了.

  • 解决Android studio 2.3升级到Android studio 3.0 后apt报错问题

    1.现象描述 原来项目在Android studio 2.3一切正常,升级3.0之后报如下错误: Error:Cannot choose between the following configurations of project :android_sdk: - debugApiElements - debugRuntimeElements - releaseApiElements - releaseRuntimeElements All of them match the consumer

  • Studio 编译报错:compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.的解决办法

    报错翻译: compileSdkVersion android-24"需要JDK 1.8或更高版本编译. 报错现象如下图: 原因:studio默认选择编译的版本为1.8,而当前jdk环境不是1.8.  解决方法: 1. 在build.gradle中查看编译版本 2.查看studio设置,修改studio设置的jdk设置. 方法一:修改JDK,更改为JDK1.8, 方法二:更改studio编译版本.如下图: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价

  • Android Studio一直处于Building的两种解决方法

    我们肯定遇到过打开别人的项目时一直处于Building'XXX'Gradle project info的情况.本文通过两种方法带领大家解决Android Studio一直处于Building的问题.具体内容详情如下所示: 然后就耐心等待了一会,然后就烦躁地再等待了一会,发现还没动静就果断点击了Cancel,但是发现并不能Cancel掉.最后只能强制结束掉AS. 事件的起因是别人项目的gradle版本和你使用的gradle版本不一致导致在打开项目的时候会去下载别人项目的gradle版本.但是呢,由

随机推荐