美文网首页AndroidAndroid开发我爱编程
Android Studio 导入新项目问题

Android Studio 导入新项目问题

作者: 蓝点工坊 | 来源:发表于2016-11-18 19:10 被阅读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 下,找到

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

    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选项
    • 删掉app下build目录,clean project 重编译

    禁用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即可

    相关文章

      网友评论

        本文标题:Android Studio 导入新项目问题

        本文链接:https://www.haomeiwen.com/subject/liqwjttx.html