Android Studio 导入新项目问题
一.长时间停在building “project name”gradle project info的解决办法
这个是因为编辑工具gradle对于版本极为敏感,没有什么向后兼容的考虑,用哪个版本就必须用它,没有的话Android studio自动从网络下载这个版本,但是在天朝这个网站是下不来的.
因此只能有两个办法,方法一:自己手动下载对应版本gradle解压.
方法二:修改配置文件换成你当前Android studio所用的gradle版本
第二种简单一点,具体方法找到项目目录下
gradle/wrapper/gradle-wrapper.properties 打开编译
#Sat Jul 23 11:03:25 HKT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip
其中distributionUrl就是指明版本,你找到原来成功编译的项目(或新建一个项目)
里面同样位置的distributionUrl内容复制过来即可,导入
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,从这里下载
http://services.gradle.org/distributions/
下载 gradle-3.3-all.zip 解压放到本地 Android Studio 安装目录android-studio/gradle 目录下
Mac一般是 /Applications/Android Studio.app/Contents/gradle
修改as set让新版 gradle生效
File > Settings > Builds,Execution,Deployment > Build Tools > Gradle >Gradle home path
二.failed to find target with hash string 'android-xxx'
这个是指项目所需的android sdk没有下载,一种是自动下载,点击错误提示那个"Install missing platform(s) android sync project"就能下载(好象没封),如果网速快,建议还是用这个方法
Paste_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 自带库版本的确定
很多引用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字段.
Paste_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:unspecified
Could 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 组件的缓存目录里
image.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'
高版本 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
改为
3.2 找不到布局库
image.pngError: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,如下图
3.3 项目本身下载的库路径
可以选在库列表,菜单copy path ,然后在finder打开即可
image.png
一般是在 app/build/intermediates/exploded-aar/下面
四. adt build工具版本太低
错误提在如下,最后核心最后一句, 提示使用 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.jar
Required 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
}
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 中,取消所有的选中项
image.png五. values-23.xml报错
- 这里因为调整compileSdkVersion造成的.版本过高但是无相应SDK
/Users/pro/Documents/android-workspace/android-studio/ZonePlus/app/build/intermediates/res/merged/debug/values-v23/values-v23.xml
Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(24) 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一致内容
六.导入Eclipse 项目问题
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 = false
useNewCruncher = false
}
表示仍用旧版aapt处理方法来处理.
Android studio如果报 .9.png文件冲突,很可能已经转换成新的文件,删除.9.png即可