AndroidAndroid开发我爱编程

Android Studio 导入新项目问题

2016-11-18  本文已影响652人  蓝点工坊

一.长时间停在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

image.png

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

image.png

二.failed to find target with hash string 'android-xxx'

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

Paste_Image.png

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

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

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 找不到布局库

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,如下图

image.png

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,在Settings/Preferneces > Build, Execution, Deployment option > Instant Run 中,取消所有的选中项

image.png

五. values-23.xml报错

  1. 这里因为调整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即可

上一篇 下一篇

猜你喜欢

热点阅读