ca88yzc 12

Android开拓爬坑记,之全面计算Androidca88yzc

Posted by

前言:好多 Android
开发者都在说Android Studio太坑了,老是出错,导致开发进度变慢,出错了又不知道怎么办,网上去查各种解决方案五花八门,有些可以解决问题,有些就是转来转去的写的很粗糙,让人看了云里雾里。我就很不爽这种做法,要么就不写,要写就写出让人一目了然的东西,所以在这里我就详细了总结了一下Android
Studio2.X的那些坑。

本文是我平时项目开发过程中遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题。

这个是因为编辑工具gradle对于版本极为敏感,没有什么向后兼容的考虑,用哪个版本就必须用它,没有的话Android
studio自动从网络下载这个版本,但是在天朝这个网站是下不来的.

【tips】如果这里没有你遇到的难题,欢迎留言提出来,我能解决的就一定帮你搞定。

这篇博客大体上分为以下几个方面的内容:

1)关于sdk  点击此处链接: 1

2)关于jdk  点击此处链接: 7、8

3)关于加速器(Intel HAXM)   点击此处链接: 2、 3、 4、 5

4)关于gradle  点击此处链接:9、 15、 19、 23、25

5)关于混淆打包编译  点击此处链接:10、 22

6)关于依赖库和插件  点击此处链接:6、 11、 12、 13、 18

7)关于配置和源码关联  点击此处链接:14、 16、 20、 21、 24

8)关于模拟器  点击此处链接:17

1. 当项目编译后出现以下问题:

Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
>More than one file was found with OS independent path 'META-INF/rxjava.properties'

ca88yzc 1

解决方法:
在build.grade中添加以下代码:
(注意:下面代码中的’META-INF/rxjava.properties’在错误日志中有提示)

android{
  packagingOptions {
      exclude 'META-INF/rxjava.properties'
  }
}

因此只能有两个办法,方法一:自己手动下载对应版本gradle解压.方法二:修改配置文件换成你当前Android
studio所用的gradle版本

1. Android Studio第一次启动时出现 unable to access android sdk add-on list

出现原因:电脑没有sdk,studio也没有自带sdk;

解决办法:在安装studio的目录下找到bin\idea.properties,打开这个文件,在末尾加上一行
  disable.android.first.run=true就行了,如果打不开这个文件就用editplus或者sublime text打开

2、Android Studio出现Failed to open zip file问题的解决方法

最近从github上下载的项目总是遇到这样的编译问题:

ca88yzc 2

Error:Failed to open zip file.
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
Re-download dependencies and sync project (requires network)

在网上搜索了一下,发现问题出在gradle-wrapper.properties
一般出现这种问题的项目都是因为使用了gradle-3.3-all.zip,而gradle-3.3-all.zip无法直接在studio中下载下来。
distributionUrl=https://services.gradle.org/distributions/gradle-3.3-all.zip
解决这个问题的办法有好几个:

  1. 可以把gradle-wrapper.properties里修改了gradle的版本,与之前没有报错的gradle版本一致,然后再修改项目build.gradle文件中的com.android.tools.build:gradle的版本号,具体是多少也是参照以前那些没有报错的项目。
  2. 直接在网上找到gradle-3.3-all.zip下载下来,不要解压缩,放在类似下面的目录中
    C:\Users\Administrator.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9,这个办法没有试过,按理说是可以的。下载地址在这里找:
    http://services.gradle.org/distributions/
    里面各个版本都有。
  3. 最简单的方法,也是我采用的方法,
    就是改一下gradle-wrapper.properties中的distributionUrl

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

改成

distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-all.zip

其实这里的区别就是https和http。

第二种简单一点,具体方法找到项目目录下gradle/wrapper/gradle-wrapper.properties
打开编译

2. 在安装了新的 Android Studio 之后,AVD 新建并启动模拟器的时候报以下错误:

emulator:ERROR:x86 emulation currently requires hardware
acceleration!
Please ensure Intel HAXM is properly installed and usable.
CPU acceleration status: HAX kernel module is not installed!

出现原因:原来新的 Android SDK 在运行虚拟机的时候,需要安装 Intel
HAXM:一个硬件加速器,为的是在x86平台上加快安卓虚拟机的运行。

解决方法:
(1) 在安装之前首先到 SDK 的安装目录下打开SDK Manager:
  找到 Inter....(中间的很多单词就不写了,重点看到 Inter 和 HAXM 就可以了点击下载) HAXM 点击install
(2) 然后进入到你SDK的目录下,再进入extras —> intel —> Hardware_Accelerated_Execution_Manager,
  可以看到HAXM的安装文件:interhaxm-android.exe
(3) 但是在安装之前还有一个步骤,就是重启计算机,进入开机界面前按F2进入到计算机的BIOS下,
  切换到 Configuration 找到下面的 Intel Virtual Technology。设置为Enable状态(即允许虚拟机技术),
  然后再双击interhaxm-android.exe安装,一直next就可以了

3、问题:Error:Execution failed for task ‘:app:validateDebugSigning’. > Keystore file F:\myAndroid3\android_s

解决:
导入下载的工程出现这个错误,追究其原因是是下载的工程中有指定使用的Keystore文件的路径,所以我们可以通过Android
studio File –> ProjectStructure –> 选择app
,再选择signing,把Store
File里指定的Keystore文件的路径删除,或者填写自己的Keystore文件的路径。
然后点击ok,再clean下工程即可。

#Sat Jul 23 11:03:25 HKT 2016distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip

3. Intel 加速器 HAXM ,安装过程中可以会出现如下错误:

“Failed to configure driver: unknown error. Failed to open driver”

有以下几个步骤可以解决该问题:
(1) 下载haxm_extra_workaround.zip 附件
(2) 解压后提取hax_extract.cmd 文件到 HAXM 的解压文件路径中
(3) hax_extract.cmd 右键用管理员权限运行。
执行以上步骤后,基本可以解决以上提示的安装异常问题。

4、问题:Error running app Instant Run requires Tools Android Enable ADB integration to be enabled.

根据这个提示可以看出来,这应该是“即时运行”出问题啦,为了能够继续敲代码,找到了一个暂时性的解决方案:在Android
Studio中的:Preferences(win中对应“Set”)—–>Build,Execution,Deployment—–>Instant
Run,按照下图进行勾选:

ca88yzc 3

其中distributionUrl就是指明版本,你找到原来成功编译的项目里面同样位置的distributionUrl内容复制过来即可,导入

4. 因为电脑卡死,结束了qemu-system-i386.exe这个倒霉的进程,导致我开启模拟器的时候一直提示我没有安装Intel HAXM,只好再安装一遍,然后出现了以下问题:

This computer meets the requirements for HAXM,but IntelVirtualization
Technology(VT-x) is not turned on.
HAXM can be installed,but will not work until VT-x is enabled.
Please refer to the Inter HAXM documentation for more infomation.

解决办法:

"Inter Virtual Technology"先设置Disable,启动系统。再重启,"Inter Virtual Technology"设置为Enable

5、Android studio 导入项目出现:Failed to crunch file

问题:

Error:Execution failed for task ':ExpandCheckRecyclerView:mergeDebugAndroidTestResources'.> 
Error: com.android.builder.internal.aapt.AaptException: Failed to crunch file 
D:\AndroidStudioWorkSpace\a_team_svn\yuanzhang\SunBabyYuanZhang\trunk\Libraries\ExpandCheckRecyclerView\build\intermediates\exploded-aar\com.android.support\appcompat-v7\24.2.1\res\drawable-xhdpi-v4\abc_list_selector_disabled_holo_light.9.png 
into D:\AndroidStudioWorkSpace\a_team_svn\yuanzhang\SunBabyYuanZhang\trunk\Libraries\ExpandCheckRecyclerView\build\intermediates\res\merged\androidTest\debug\drawable-xhdpi-v4\abc_list_selector_disabled_holo_light.9.png

解决方法:
之前是把项目相关的build文件都给删除了一遍再重新build一下,但是每次打开项目还会是抱同样的错误,最终的解决方法是把项目的目录往上移一下,项目路径不可以过长,直接把项目建在磁盘目录下就可以了。

1.2 补充新出现问题

Gradle sync failed: Minimum supported Gradle version is 3.3. Current
version is 2.14.1. If using the gradle wrapper, try editing the
distributionUrl in
xxxxx/Mobike-master/gradle/wrapper/gradle-wrapper.properties to
gradle-3.3-all.zip

这个提示上是说手动改了gradle版本后,失败因为整个项目需要较高的gradle的,这时需要手动下载对应gradle
,以本提示为例,需要gradle-3.3,从这里下载

下载 gradle-3.3-all.zip 解压放到本地 Android Studio
安装目录android-studio/gradle 目录下Mac一般是 /Applications/Android
Studio.app/Contents/gradle

ca88yzc 4image.png

修改as set让新版 gradle生效File > Settings >
Builds,Execution,Deployment > Build Tools > Gradle >Gradle home
path

ca88yzc 5image.png

这个是指项目所需的android
sdk没有下载,一种是自动下载,点击错误提示那个”Install missing platform
android sync project”就能下载,如果网速快,建议还是用这个方法

ca88yzc 6Paste_Image.png

另外一种还是修改编译配置文件找到所有项目目录下的 build.gradle 下,找到

  • xxxSdkVersion 所用SDK版本
  • buildToolsVersion ADT版本
  • compile ‘com.android.support:appcompat-v7:22.2.0’ 兼容库版本

相关地方将其改成你成功编译的所用版本.

apply plugin: 'com.android.application'android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.zhaoxiaodan.mibanddemo" minSdkVersion 21 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.0'// compile project(':miband-sdk') compile 'com.zhaoxiaodan.miband:miband-sdk:1.1.2'}

很多引用Android库要求必须精确版本,否则编译不下,但是确定版本方法有点曲折.如下面常用

compile 'com.android.support:support-v4:23.2.1'compile 'com.android.support:appcompat-v7:23.2.1'compile 'com.android.support:design:23.2.1'compile 'junit:junit:4.12'

gradle库引用的com.android.support库在AndroidSDK目录
extra/android/m2repository/com/android/support/下面

即可以看目录,可以看相应maven-metadata.xml 相应version字段.

ca88yzc 7Paste_Image.png

如果找不到这个文件,看
/Users/pro/bin/adt-bundle-SDK-4.4/sdk/extras/android/m2repository/com/android/support
相关目录名能可直接看出来.

比如提示编译报错

Error:A problem occurred configuring project ‘:zxingdemo’.Could not
resolve all dependencies for configuration
‘:zxingdemo:_debugApkCopy’.Could not find
com.android.support:appcompat-v7:25.1.0.Required
by:BGAQRCode-Android:zxingdemo:unspecifiedCould not find
com.android.support:recyclerview-v7:25.1.0.Required
by:BGAQRCode-Android:zxingdemo:unspecified

找到build.gradle 一看有如下内容

compile ‘com.android.support:appcompat-v7:25.1.0’compile
‘com.android.support:recyclerview-v7:25.1.0’

查找 sdk 组件的缓存目录里

ca88yzc 8image.png

可以看到在这个appcompat-v7 ,recyclerview-v7 目录下,只有 25.0.1 目录

将上述改为即可编译通过

compile ‘com.android.support:appcompat-v7:25.0.1’compile
‘com.android.support:recyclerview-v7:25.0.1’

5. 关于intelhaxm-android.exe安装的坑:不管是双击还是右键以管理员身份运行都没用,怎么解决?

解决办法:

在SDK\extras\intel\Hardware_Accelerated_Execution_Manager中找到intelhaxm-android.exe,右键解压,双击setup.exe安装就好了

高版本 Gradle 不匹配低版本 SDK build

Error:Minimum supported Gradle version is 4.1 Current version is 2.14.1

最快的办法是调低Gradler的版本把

classpath
‘com.android.tools.build:gradle:3.0.1’改为’com.android.tools.build:gradle:2.2.0’

compileSdkVersion 26改为 19改为

6. Failed to resolve: junit:junit:4.12

出现原因:项目中引用了junit库中的代码,但是却没有相关的junit的依赖库

解决办法:添加相关的依赖库引用,在项目的Module的build.gradle中添加如下代码就OK了

repositories {
    maven { url 'http://repo1.maven.org/maven2' }
    }

3.2 找不到布局库

Error:Could not find
com.android.support.constraint:constraint-layout:1.0.2.Required
by:在工具栏选择 Tools –> Android –> SDK Manager,勾选上
Support Repository中 的ConstraintLayout for Android 和Solver for
ConstraintLayout,如下图

ca88yzc 9image.png

可以选在库列表,菜单copy path ,然后在finder打开即可

ca88yzc 10image.png

一般是在 app/build/intermediates/exploded-aar/下面

错误提在如下,最后核心最后一句, 提示使用 adt
编译工具,com.android.tools.build:gradle:1.5.0

Error:Could not find com.android.databinding:compilerCommon:1.0-rc5.Searched in the following locations: file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/databinding/compilerCommon/1.0-rc5/compilerCommon-1.0-rc5.pom file:/Applications/Android Studio.app/Contents/gradle/m2repository/com/android/databinding/compilerCommon/1.0-rc5/compilerCommon-1.0-rc5.jarRequired by: :TPMS0902:unspecified > com.android.tools.build:gradle:1.5.0 > com.android.tools.build:gradle-core:1.5.0

这个工具比较老,所以与当前编译环境匹配不上.找到 build.gradle,中指明 build
工具版本一句,换成当成 sdk 版本即可

buildscript { repositories { } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' //<--------- }}

此外通常要修改同一个文件的

android { compileSdkVersion 19 buildToolsVersion "22.0.1" //<---这里的版本也要修改 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 }

7. 只要是API24以上的Android Studio,如果JDK低于1.8都会出现这个问题,比如我列举两个:

(1)Error:Execution failed for
task’:app:compileOrangeDevDebugJavaWithJavac’.compileSdkVersion
‘android-24’ requires JDK 1.8 or later to compile.

(2)Android N requires the IDE to be running with Java 1.8 or later

解决办法:把1.8以前的jdk都卸载掉,然后把环境变量配置成1.8的,就可以了.

4.2 Gradle 运行出错

This version of Android Studio is incompatible with the Gradle Plugin
used. Try disabling Instant Run (or updating either)

解决办法

  • 去掉Instant Run选项
  • 删掉app下build目录,clean project 重编译

禁用Instant Run,在Settings/Preferneces > Build, Execution,
Deployment option > Instant Run 中,取消所有的选中项

ca88yzc 11image.png

  1. 这里因为调整compileSdkVersion造成的.版本过高但是无相应SDK

/Users/pro/Documents/android-workspace/android-studio/ZonePlus/app/build/intermediates/res/merged/debug/values-v23/values-v23.xmlError:
Error retrieving parent for item: No resource found that matches the
given name
‘android:TextAppearance.Material.Widget.Button.Inverse’.Error: Error
retrieving parent for item: No resource found that matches the given
name ‘android:Widget.Material.Button.Colored’.

2.是一种比较隐密的情况是,引用的库版本太高,它需要更高的SDK才行此时需要调低库的版本,主app的使用compile
‘com.android.support:appcompat-v7:22.0.0+’

但是在Module里使用是,就造成了上述提示,即产生values-v23目录比如 compile
‘com.android.support:appcompat-v7:24.0.0’ 需要api
24此时要改支持库改为主app一致内容

Error:Execution failed for task ‘:app:mergeDebugResources’. > Some
file crunching failed, see logs for details

这个错误提示,一般出现在 Eclipse项目中 .9.png文件上,Android studio
中高版本SDK 放弃的支持.这里有两种办法,用Android studio
打开后重编辑保存一下.让其成新版格式.

另外一种办法是,在Gradle 配置文件中加入

aaptOptions {cruncherEnabled = falseuseNewCruncher = false

 }

表示仍用旧版aapt处理方法来处理.

ca88yzc 12

Android studio如果报
.9.png文件冲突,很可能已经转换成新的文件,删除.9.png即可

8. Error:(1, 1) A problem occurred evaluating project ‘:app’.com/android/jack/api/ConfigNotSupportedException :Unsupported major.minor version 52.0

解决办法:

(1)把1.8以前的jdk都卸载掉,使用1.8版本的jdk
(2)File - Project Structure - SDK Location - JDK location,这里面有个选项,
    可以选择"use embedded JDK(recommended)",使用AS内置的JDK。(不推荐这样做)

9. Unknown host ‘downloads.gradle.org’ 这个问题的解决:

使用android studio的gradle新建项目时候出现:
Error:Unknown host ‘downloads.gradle.org’.Enable Gradle ‘offline mode’
and sync project.
Learn about configuring HTTP proxies in Gradle
或者出现 Error:No cached version listing for
com.android.tools.build:gradle:0.12.+ av

解决方法如下:

不是第一次的话以后就可以点这里的clean了。

或者更直接点,打开cmd,找到你的项目根目录,输入gradle
clean(前提是下载gradle,并且设置环境变量)

如果还是下载不了的话,请看下文介绍:

具体的android studio 配置
安装步骤:
1.先下载as,下载地址:https://developer.android.google.cn/studio/index.html
下载完直接安装,安装完打开它,然后会出现下载gradle-XXX-bin.zip,根据Android
Studio版本下载对应的Gradle版本,下载这个一般都会卡死,不过不要紧,把as关掉。
2.下载gradle-XXX-bin.zip,下载地址:http://services.gradle.org/distributions/,下载完之后,找到目录:
C:\Users\用户名.gradle\wrapper\dists\gradle-XXX-bin\vruqmccc8532n7gr46qavsii8\
把下载的gradle-XXX-bin.zip放到该目录下,并且把gradle-XXX-bin.zip解压到该目录(解压得到的文件为gradle-XXX)。
3.最关键的来了,把该目录下的gradle-XXX-bin.zip.part文件删除,然后复制gradle-XXX-bin.zip.lck,把它改为gradle-XXX-bin.zip
4.到此你就可以运行Android Studio开发了。

另附: Android Studio和gradle版本对照图
(比如我现在用的是 as2.3 ,gradle版本是 3.5

Plugin版本 Gradle版本 对应的Build Tools版本
1.0.0-1.0.1 2.2.1- 2.3.x 21.1.1+(包括21.1.1)
1.1.0-1.5.0 2.2.1(包括2.2.1) 21.1.1+(包括21.1.1)
2.0.0 2.10+(包括2.10) 21.1.1+(包括21.1.1)
2.1.0 2.10+(包括2.10) 23.0.2+(包括23.0.2)
2.2.0 2.14.1+(包括2.14.1) 23.0.2+(包括23.0.2)
2.3.0+(包括2.3.0) 3.3+(包括3.3) 25.0.0+(包括25.0.0)
3.0.0+(包括3.0.0) 4.1+(包括4.1) 26.0.2+(包括26.0.2)

10. 关于混淆出现的问题:

(详细请看
http://www.open-open.com/lib/view/open1490252413493.html)

★★★★ 问题一:出现 Unknown verification type [95] in stack map frame
错误
Error:Execution failed for task
‘:app:transformClassesWithMultidexlistForNiannianDebug’.Java
.io.IOException:
Can’t read [
E:SVNbroondontrunkcodebroodon_androidappbuildintermediatestransformsjarMergingnianniandebugjars11fcombined.jar]
(Can’t process class [com/tencent/wxop/stat/al.class] (Unknown
verification type [95] in stack map frame))

原因分析:引用的第三方库已经混淆过,再在本地进行编译混淆的时候就会报出这个错误。

解决办法: 则修改混淆器,重新进行编译,将新的混淆器覆盖原来的混淆器,则可以解决。

★★★★ 问题二:
Error:Execution failed for task
‘:app:transformClassesWithMultidexlistForNiannianDebug’.
proguard.KeepClassSpecification.(ZZZZZZLproguard/ClassSpecification;)V

原因分析:升级 Android studio 以后,使用的混淆器版本不一致

解决办法: 根据 Android studio版本选择与之对应的混淆器版本

11. 这是什么原因?是因为65535问题?还是因为v7包重复了? 【待解决。。。】

Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.

com.android.build.api.transform.TransformException:
java.lang.RuntimeException:
java.lang.RuntimeException:
com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:
com.android.ide.common.process.ProcessException: Return code 1 for dex
process

12. non-zero exit value 1; 和 non-zero exit value 2; 和 non-zero exit value 3 问题的解决:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'
com.Android.build.api.transform.TransformException: 
com.android.ide.common.process.ProcessException: 
org.gradle.process.internal.ExecException:Process 'command 'F:\Program Files (x86)
 \Java\jdk1.8.0_31\bin\java.exe'' finished with non-zero exit value 1

★★★★ 问题一: non-zero exit value 1原因分析:

原因分析:这个是因为依赖包重复了
(像v4和nineoldandroids),app中实现了对easeUI的依赖,但是app和easeUI都添加了对v4这个包的依赖。

解决办法:
    把v4包注释修改之后,clean,rebuild一下,OK

★★★★ 问题二: non-zero exit value 2

解决办法:
    这个错误在app的build.gradle里面添加下面这句就好了。
    android {

        defaultConfig {
            ...
            multiDexEnabled true
        }

    }

★★★★ 问题三: non-zero exit value 3

解决办法:
   这个错误就在app的bulid.gradle里面加上这句,再rebuild ,之后再运行就行了。4g可以看电脑配置修改(2g,3g,6g,8g)。
    dexOptions {
        javaMaxHeapSize "4g"
    }

13. 打开Android Studio报错

Plugin Error: required plugin “Android Support” is disabled

更详细的错误信息如下:
Problems found loading plugins:
Plugin "Google Analytics Uploader" was not loaded: required plugin "Android Support" is disabled.
Plugin "SDK Updater" was not loaded: required plugin "Android Support" is disabled.
Plugin "Android NDK Support" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google App Indexing" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Tools For Android Studio" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Testing" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Services" was not loaded: required plugin "Android Support" is disabled.

解决办法:

  打开File-Settings-Plugins,把报红色的插件全部取消勾选,在把Android Support勾选,然后Apply-Save,重启下studio 就可以了。

14. 自定义android studio的配置文件目录后,无法正常安装和卸载插件(貌似2.0版本之后的插件安装卸载就有问题了)是何原因?详情看知乎 https://www.zhihu.com/question/38604486

解决方法:

方法(1):将idea.system.path/plugins下的文件移动到{idea.config.path}/plugins下(如果是压缩包,则需要先解压)。 
  然后重启一下AS就可以了。删除也是,貌似也得手动去文件夹下删除)

方法(2):修改AS安装目录下的idea.properties文件:
  idea.config.path=D:/.AndroidStudio2.0/config 
  idea.system.path=D:/.AndroidStudio2.0/system 
  idea.plugins.path=${idea.system.path}/plugins

15. 导入android studio项目,出现的问题:

Error:Failed to open zip file.
Gradle’s dependency cache may be corrupt (this sometimes occurs after
a network connection timeout.)
Re-download dependencies and sync project (requires network)
Re-download dependencies and sync project (requires network)

Android遇到的问题15对应的图片1.png

这个错误提示意思是:Gradle’s dependency cache may be
corrupt:(Gradle的依赖缓存可能是损坏的。)

  • 原因分析:我们要导入别人写好的工程时,一般不需要更改什么,as智能判断会提示我们是否需要对build
    gradle
    setting之类的文件进行修改。针对gradle个版本工具来说,如果不选择更新直接原来的Gradle
    Version中的Gradle工具,再加上.gradle库中没用该版本时,as会创建这样的库,有时候这样的库会下载不完整,导致上面的问题。

  • 解决办法:

      1.下载 gradle
    

    下载地址很简单,以
    下载gradle-3.5-all.zip为例子。不要去网上找这样那样的网站下载gradle工具了。浏览器输入以下链接快速下载:
    services.gradle.org/distributions/gradle-3.5-all.zip

      2.复制替换
    

    下载完成后替换
    C:\Users\Administrator.gradle\wrapper\dists\gradle-3.3-all
    exhrs6ca08n232b14ue48lbye中对应的gradle-3.5-all.zip文件。
    正确解压后的的文件如下图所示:

Android遇到的问题15对应的图片2.png

    3.重新打开项目,对工程中做一些配置如下,重新编译一下,就没问题了:

Android遇到的问题15对应的图片3.png

16. Android studio 源码无法关联,提示Souces for android api 25 platform not found:

解决方法:

1)找到jdk.table.xml这个文件

jdk.table.xml文件路径:(以win7为例,Administrator是电脑的用户名,我当前开发工具版本号是Android Studio2.3)
C:\Users\Administrator\.AndroidStudio2.3\config\options\jdk.table.xml

2)在<sourcePath>节点下添加这一句<root type="simple" url="file://E:/android/sdk/sources/android-25" />

修改后的部分配置文件如下:注意红色方框部分,找到对应的编译版本,再添加对应的源码位置

17. com.android.ddmlib.SyncException: No space left on device

解决方法:

把模拟器里没用的应用或者demo卸载卸载。如果还不行,就重启或者重新创建一个模拟器

18. app:transformClassesWithJarMergingForDebug

原因:重复依赖导致的.

解决办法:

找到报错的那个提示,看上面报错的是哪个类,双击shift搜索一下,看这个报错的类在哪个依赖库里面用到了。
在AS中,选择以project显示项目,找到最下面的External Libraries,然后继续找,找到相对应的类库。
点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,往下找,发现了一个依赖库的引用,
复制里面groupId,到你的app的build.gradle里,找到那个依赖,添加{exclude group: 'XXX'} XXX换成刚才复制的groupId,这样就
把这个groudId的引用去除掉。

19. processdebugresources

原因:build.gradle的兼容包和compileSdkVersion配置不对引起的

解决办法:让兼容包和compileSdkVersion匹配就OK了。关于这个版本匹配,请查看上面的第9点那张表格。

20. Android Studio配置androidannotations出现 Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’

原因: androidannotations配置环境对SDKtools, Build Tools, Platform
Tools 以及 SDK Platform有要求,不匹配的话就会报错

解决办法:打开SDK Manager,更新SDKtools, Build Tools, Platform Tools
以及 SDK Platform到最新版本

21. Error:com.android.builder.internal.aapt.AaptException: Failed to crunch

原因:
项目路径太长,导致有的资源文件整个路径长度超过了240个字符。这是Android
Studio的一个坑。

解决办法:

(1)重命名项目名,重新运行一下。
(2)如果以上方法不行,就缩短路径深度,减少路径层级,每一级路径名字尽可能的缩短。

22. Android Studio编辑时发生的错误

Error:warning: Ignoring InnerClasses attribute for an anonymous inner
class

原因:有3种情况可以导致这种错误发生:

  • (1)导了重复jar包,或者导入了不同版本的同名jar包。

  • (2)AndroidStudio打签名包时android.keystore 的密码输入错了

  • (3)有可能是Dex的方法数超过上限导致的。

解决办法:

  • (1)把重复的jar包删除掉,Rebuild
    Project,就OK了,如果,还有其他问题,那证明你的app下的build.gradle依赖配置就有问题。

  • (2)重新打包一个正式包,重新输入签名账号密码。

  • (3)在项目的build.gradle文件中添加multiDexEnabled true 搞定。

示例:

之前是在win7电脑的工程运行在mac电脑,打开就出了这样的错误。解决这个问题的方式,给大家分析一下:

1.第一考虑是不是可以直接忽略第三方的属性的错误警告.找到项目下对应的proguard-rules.pro文件,在proguard-rules.pro文件中
  添加如下代码

-keepattributes EnclosingMethod

2.查看第三方jar有没有重复利用的,发现并没有。继续下一步。

3.看看是不是Dex越界引起的问题。在项目的build.gradle文件中添加以下代码:

multiDexEnabled true

重新编译之后,项目成功移植了。

23. Android Studio版本更新后Gradle版本不匹配问题

Error:(1, 0) The android gradle plugin version 2.3.0-beta1 is too old,
please update to the latest version.
To override this check from the command line please set the
ANDROID_DAILY_OVERRIDE environment variable to “xxxxxxx”

问题截图如下:

解决办法:升级Gradle到合适版本,具体操作如下:

【特别说明】Android
Studio版本和gradle版本是相匹配的,不是随意匹配的,版本不匹配就会出错。具体的Android
Studio和gradle版本对照请看 Android
Studio和gradle版本对照

  • (1)访问
    Gradle官网下载地址
    来下载与之匹配的Gradle版本或者最新的Gradle工具包;

  • (2)解压到Android Studio的gradle目录下;

  • (3)File->Setting->Build,Exection,Deployment->Gradle->Use
    local gradle distribution,修改Gradle home为AS安装
    目录下最新的gradle版本;

  • (4)修改对应Project的build.gradle中的com.android.tools.build:gradle:版本号为提示版本(如修改classpath
    ‘com.android.tools.build:gradle:2.3.0-beta1’为classpath
    ‘com.android.tools.build:gradle:2.3.0-beta3’);

  • (5)修改gradle-wrapper.properties中distributionUrl上的版本号与当前Gradle版本号一致(如修改distributionUrl=https\://services.gradle.org/distributions/gradle-3.2-all.zipdistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip)

  • (6)重新同步。

图解如下所示:

Android遇到的问题23解决办法.png

24.AppConfig.java文件中文乱码,log也乱码问题的解决。

文件乱码

解决办法:找到对应的module或者lib,打开里面的build.gradle,输入以下代码:

新版gradle用这个:
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
旧版gradle用这个:
tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}

【另外】:上述方法如果不管用,试着点击Android
studio右下角的文件编码按钮,图中红色区域,然后选择UTF-8改选为GBK。

切换编译语言格式

此时会弹出窗口提示是否重载文件,选择“Reload”,基本也可以搞定。

如果设置之后还是不行,建议clean一下,重启一下Android Studio。


25. failed to complete gradle execution问题

使用Android Studio创建新项目后,一直出现 “Failed to complete Gradle
execution. Cause: A fatal exception has occurred. Program will
exit”这个问题。

failed to complete gradle execution问题

解决方法有2个(2种方式实质上还是一样的)

  • 方法1:打开工程的gradle.properties文件,添加如下配置项,这个问题应该就不会出现了。

      org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m
    

如下图所示:

  • 方法2:在Android Studio中,选择File -> Settings -> Compiler
    -> 在VM options选项中填写:

      -Xmx512m -XX:MaxPermSize=512m
    

如下图所示:


这里没提到的可以参考:
https://my.oschina.net/Jieth/blog/489014,以后会逐渐补充进去。


最后,推荐一本书给大家看看,希望对大家有帮助。

本文同步在github发布,有兴趣的可以去看看。https://github.com/AweiLoveAndroid/The-pit-of-the-Android-Studio

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注