Android Studio/Gradle构建问题集

> xml文件无法预览
-- 解决Android studio3.1.2布局文件无法预览问题- https://blog.csdn.net/liuzhi0724/article/details/81318131
解决方法:进入工程的res->values->styles.xml文件,将parent的值,在前面加上Base.

-- Android Studio无法预览xml布局之解决方法(两种)-  https://blog.csdn.net/qq_33409436/article/details/82460618
 1.可以通过更改主题AppTheme,来使xml布局可以被预览
 2.查看主配置文件如下,获取主题配置信息(文件名:AndroidManifest.xml)

  记Android Studio 根目录 google()配置报错问题- https://www.jianshu.com/p/cb40bf3875d5
把google()换成了:maven { url 'https://maven.google.com/'}
  maven { url 'https://maven.google.com' } VS google()- https://www.jianshu.com/p/079a76c6d312

> 使用Gradle遇到的问题及其他:

Android Studio安装过程常见问题图解-- http://jingyan.baidu.com/article/fd8044fad5bdca5031137ab7.html

1. 将GitHub上的新项目导入Studio中
Pano360-master is registered as a git root,but no git repositories were found here.- https://stackoverflow.com/questions/43732446/registered-as-a-git-root-but-no-git-repositories-were-found-there

2. 升级到Studio 3.0.1和gradle-4.1遇到的两个问题
 1.GradleConnectionException: Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-4.1-all.zip'
  2.Gradle sync failed: Cause: error in opening zip file
解决方案:可能原来的Gradle包损坏了,需要重新下载,替换原来的Gradle版本-http://blog.csdn.net/qq_35434831/article/details/72235863
把这个“https://services.gradle.org/distributions/gradle-3.3-all.zip”下载下来,替换损坏的,就搞定了。

 Android Studio 首坑 Gradle sync failed: Cause: error in opening zip file 的错误- https://www.cnblogs.com/maydear/p/6849745.html

3. AS出现Gradle's dependency cache may be corrupt错误的解决办法,一般出现这种问题的项目都是因为使用了gradle-3.3-all.zip,而gradle-3.3-all.zip无法直接在studio中下载下来。
方法一:直接在C盘C:\Users\desaco\.gradle用户文件夹下删掉.gradle文件夹即可。
方法二:将原来的gradle-4.1换成新的gradle-4.1-rc-1-all版本或将https换成Http;https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
方法三:直接在网上找到gradle-3.3-all.zip下载下来,不要解压缩,放在类似下面的目录中 C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9
 解决win10环境下Android studio导入工程 Gradle's dependency cache may be corrupt 版本号不对应问题- http://blog.csdn.net/qq_32519479/article/details/73194964
 Android Studio出现Failed to open zip file问题的解决方法- http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2017/0317/7691.html

  还有个方法:下载比较高的版本的Studio,然后新建一个新的项目,跑起来之后,将新项目中的distributionUrl(替换Gradle版本)和classpath 
'com.android.tools.build:gradle:3.0.0'拷贝将要导入的项目中,将Https换成Http。
【classpath 'com.android.tools.build:gradle:3.0.0' ; distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip】

4. 多个模块moudle中AndroidManifest.xml合并问题

1.Manifest merger failed with multiple errors?

2.uses-sdk tools:overrideLibrary的用法
 我的项目的最低支持版本为8(Android 2.2),而第三方库的最低支持版本为9(Android 2.3)?
在AndroidManifest.xml文件中 标签中添加,其中的xxx.xxx.xxx为第三方库包名,如果存在多个库有此异常,则用逗号分割它们,例如:,这样做是为了项目中的AndroidManifest.xml和第三方库的AndroidManifest.xml合并时可以忽略最低版本限制。

5. 在github上下载的项目,导入Studio一直失败

  1> GitHub或新的项目下,可能需要配置的东西有:
classpath 'com.android.tools.build:gradle:2.1.2',2.1.2表示Studio版本
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip,2.10表示Gradle版本

2> 简单解决 Android Studio导入github下载的工程报错的问题- http://blog.csdn.net/yxl503248523/article/details/50695917
如何从GitHub上下载的项目导入到android studio- http://blog.csdn.net/a34927341/article/details/52949842
1.由于库的作者的开发环境(as的版本,sdk的版本,buildtool等和我们当前本机开发环境的不同,所以gradle的相关的文件和文件夹就会产生很大差异);
2.需要做的是:
 a.DownLoad Github上的Studio项目
 b.新建一个Studio项目,将新项目下的 gradle 文件夹 (必须)/build.gradle (必须)/gradle.properties (必须)/.gradle 文件夹 (非必须)(注意前面的.)拷贝后,替换Github DownLoad的Studio项目中的相应文件,
 c.然后将GitHub项目导入Studio中;
 d.查看项目中app/module/library的build.gradle 是否有新的apply plugin,如有apply plugin: 'com.jfrog.bintray'
  ,要在全局Project的build.gradle添加相应的依赖classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0"

 e.然后同步下项目

6. android studio 如何删除一个module  
第一步:先删除掉Module下的iml文件
第二步:删除掉setting.gradle里面的Moudule的名字
第三步:关掉工程,重新打开,会提示不能发现Module的错误Error Loading Project Cannot load module ..Detail,
点击Detail链接
第四步:弹出错误框,点击YES,这样Moudule,就可以顺利删除
第五步:右击Moudule,点击Delete,这样就可以完整的删除,不会在重新生成 。

7. Studio导入ButterKnife jar包:
1)如果你是Eclipse,可以去官网下载jar包
2)如果你是AndroidStudio可以直接 File->Project Structure->Dependencies->Library dependency 搜索butterknife即可,第一个就是.

8. Android Studio出现:Your project path contains non-ASCII characters.-其实很好解决啦,就是你的工程项目路径或者项目名称包含了中文.错误原因:引用项目的路径中包含中文.

9. 升级为android studio3.0,gradle升级为4.1,报错
Can't process attribute android:fillColor="@color/text_gray": references references to other resources are not supported by build-time PNG generation 
需要在项目的build.gradle脚本中,增加对Vector兼容性的支持
   使用Gradle Plugin 2.0以上:
android {
    defaultConfig {
        vectorDrawables.useSupportLibrary = true
        javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
    }
}
使用Gradle Plugin 2.0以下,Gradle Plugin 1.5以上:
android {
  defaultConfig {
    // Stops the Gradle plugin’s automatic rasterization of vectors
    generatedDensities = []
  }
  // Flag to tell aapt to keep the attribute ids around
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }

}

10. 用Android studio2.3编写了一个项目,现在Android studio升级到3.0后再打开这个项目就报错了
Error:(847) error: 'orientation|screenSize|keyboardHidden|keyboard|' is incompatible with attribute android:configChanges (attr) flags [colorMode=16384, density=4096, fontScale=1073741824, keyboard=16, keyboardHidden=32, layoutDirection=8192, locale=4, mcc=1, mnc=2, navigation=64, orientation=128, screenLayout=256, screenSize=1024, smallestScreenSize=2048, touchscreen=8, uiMode=512].
 解决方案:在gradle.properties文件下加入android.enableAapt2=false(gradle.properties一般就在项目根目录下,Studio版本小于3.0的项目会有一个gradle.properties文件)

11. 解决Android Studio不能进入调试模式问题 http://blog.csdn.net/xiaopang_love_study/article/details/68961556
Build -> Clean Project 
Build -> Rebuild Project 
第二步是在build.gradel(Module:app)文件中加入调试属性
buildTypes {
    debug{
        minifyEnabled false
        debuggable true
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

}

12 . Android Studio之could not reserve enough space for object heap报错-http://blog.csdn.net/u014581901/article/details/51628798

13.  gradle project sync failed,为什么会形成这种奇怪的现象呢,因为依赖包的路径太长了。默认的情况下,gradle都在个人用户的目录下,有的人的名字长,有的名字短。名字长的一下子就溢出了,导致工程不能运行了。
 解决办法1 :把gradle的依赖包换一个地方。比如在eclipse中,通过gradle插件,直接修改目录即可。 注意,新指定的目录不能为 .gradle或者类似 以.开头,否则会没有效果。
 解决办法2.修改gradle版本,使用你本地已经sync成功的版本:D:\Program Files\Android\Android Studio\gradle\gradle-2.8。注意,这样并不能一定保证能解决问题,如果不成功,还是要改回去
  gradle Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86 (32 位)或 x64 (64 位)版本的程序,然后联系软件发布者。
  gradle project sync failed,occurred during initialization of VM Could not reserve enough space for object heap--修改项目gradle.properties文件,添加下面一行代码:
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m 

  引用的Jar包不能编译问题,Android studio如何更改gradle版本?-- http://jingyan.baidu.com/article/3c343ff7f84e950d36796357.html (找到项目下面的build.gradle文件,修改Gradle版本)。

14. Android Studio 安装完成,初次启动卡在download Components解决办法:
  首先关闭安装向导,如果无法关闭可以在任务管理器中手工关掉进程,然后打开Android Studio安装目录的bin目录下面的idea.properties文件,添加一条禁用开始运行向导的配置项:disable.android.first.run=true
  后来进入AS首页,配置sdk;点击configure→project defaults→project structure到这么一个界面配置android sdk 和jdk的路径.

15. Android Studio 报错failed to create jvm error code -4的解决方法-- http://blog.csdn.net/waitone123/article/details/52446878

打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码:-Xmx512m 为 -Xmx256m

   android studio1%与windows不兼容?-- http://www.zhihu.com/question/50793073/answer/122961021 , http://blog.csdn.net/gao_fei1129/article/details/52681225

  Android Studio Error: Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running-- http://stackoverflow.com/questions/37624369/android-studio-error-errorcreateprocess-error-216-this-version-of-1-is-not-c.

16.   Android Studio报错UTF-8+BOM的解决办法,eclipse可以自动把UTF-8+BOM格式转换成UTF-8格式,而Android studio没有这种功能。UTF-8编码最好不要带BOM,带BOM的UTF-8编码是微软的习惯,如果在其它系统(我用的MAC OSX)很可能就会出现问题。

17.Eclipse Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!解决方法- https://blog.csdn.net/betterfate/article/details/70527228

18. Studio与Gradle-- Error: Your project contains C++ files but it is not using a supported native build system

解决方案:https://blog.csdn.net/lanuage/article/details/53072303

1.首先在工程目录下的gradle.properties文件的末尾加上一句:Android.useDeprecatedNdk=true 
2.然后在buildTypes中加入sourceSets {}
buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        sourceSets {
            main {
                jni.srcDirs = []
            }
        }

    }

19. gradle编译时,出现Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com
  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.项目中配置butterknife:7.0.1,框架的版本过低。
在主app的build.gradle里面的
defaultConfig {
        applicationId "*.*.*"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 10
        versionName "1.6.6"
        flavorDimensions "versionCode"
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true    //加上这行即可
            }
        }
    }

20. error: style attribute ‘@android:attr/windowEnterAnimation’ not found;error: value attribute ‘@android:attr/windowEnterAnimation’ not found

全局搜索@android:attr/windowEnterAnimation找到相应的地方,把@去除

21. Android studio升级3.0,提示“Error:Cannot choose between the following configurations of project”错误- https://blog.csdn.net/tangxl2008008/article/details/78416138
 Error:Cannot choose between the following configurations of project :pickerview:  
  - debugApiElements  
  - debugRuntimeElements  
  - releaseApiElements  
  - releaseRuntimeElements 
解决办法:
   1、project的build.gradle文件,删除“apt”配置:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //删除  
   2、module的build.gradle文件,删除“android-apt”引用:
apply plugin: 'android-apt'  //删除  
   3、module的build.gradle文件,修改“dependencies”中的“apt”方式 为“annotationProcessor”方式:
apt "引用项"  //老方式,删除  

annotationProcessor "引用项" //新方式 

-- Android Studio遇到Failed to resolve: common问题- https://blog.csdn.net/jahonn/article/details/80639576
将Project的build.gradle文件中的google()挪到jcenter()上面一行就可以了:
buildscript {  
    repositories {  
        google() //TODO 20180610 add 
        jcenter()  
    }  
    dependencies {  
        classpath 'com.android.tools.build:gradle:3.0.0'  
  
        // NOTE: Do not place your application dependencies here; they belong  
        // in the individual module build.gradle files  
    }  
}  
  
allprojects {  
    repositories {  
        google()  //TODO 20180610 add
        jcenter()  
    }  

 

22.升级AndroidStudio3.0 Unable to resolve dependency for ':app@betaUnitTest/compileClasspath问题解决-https://blog.csdn.net/hglyh/article/details/79751591
 app的build.gradle里buildTypes 写了什么,module里必须也写上,写成空的也行:
buildTypes {
        debug {
            .....
        }
        release {
            .....
        }
        sourceSets {
           .....
        }
    }
 然后修改对应module的build.gradle,添加对应的代码:
buildTypes {
        debug {
            .....
        }
        release {}
        sourceSets {}
    }

  23.Error:Library projects cannot set applicationId. applicationId is set to 'org.geometerplus.zlibrary.ui.android' in default config.
 module的build.gradle里面defaultConfig内存在:,module中有applicationId,删除即可
    defaultConfig {
        applicationId "com.du.android.recyclerview"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
红色部分的字体,这时删除红色标注的内容即可!

24. Error:Execution failed for task ':app:processDfDebugManifest'.
> Manifest merger failed with multiple errors, see logs
 这说明在合并所有的Manfest文件时冲突了,几率最大的两个原因是
1.build.gradle中设置的compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion不统一,需要按宿主项目的配置进行统一。
2.几个项目的AndroidManifest文件中设置了多个android:allowBackup    android:icon   android:label  android:theme 属性,这里需要在宿主项目的Manfest文件中添加两句话
manifest 节点下加入
xmlns:tools="http://schemas.android.com/tools"
application节点下加入
tools:replace="android:allowBackup,icon,theme,label"

不能写成tools:replace="android:allowBackup,android:icon,android:theme"   虽然不报错,但是不起作用。

25. Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDfDebug'.
com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题- https://blog.csdn.net/lvshuchangyin/article/details/53785494

26. > Error: Please select android SDK
打开Android Studio报错“Error running ***: Please select Android SDK”- 
https://blog.csdn.net/aqi00/article/details/78858336/
https://www.jianshu.com/p/0fb5a857662e?from=timeline

27. studio3.0后gradle新的依赖方式
Android 升级gradle 插件到 3.0.+- https://blog.csdn.net/o279642707/article/details/78962871
gradle新的依赖方式你真的了解吗?- https://blog.csdn.net/RunningShadow_007/article/details/78681788

28. android studio 3.1.2找不到android monitor解决办法->因为as在新版本,更名了,变为android profile,点击下图即可
通过Android Studio的Android Profiler来动态的查看我们APP的内存使用情况;
也可以用DDMS来查看内存信息 ,DDMS打开方式:Tools->Android->Android Device Monitor。

29. the modules [xx1, xx2] point to the same directory in the file system.
解决方法:
在菜单工具栏中:File → Invalidated Caches / Restart… → Invalidate & Restart

30. Missing javaCompileTask for variant: debug/0 from output dir:
gradle升级到了4.1后, 需要升级retrolambda版本为3.7.0,classpath 'me.tatarka:gradle-retrolambda:3.7.0'

31.-- Each module has to have a unique path
 把.iml文件给上传上去了,每次builde都会出现不同的错误,这次出现:Each module has to have a unique path,在stackflowe上说,直接删除就行了,结果,就是直接把Project.iml文件删除就可以了。
 在菜单工具栏中:File → Invalidated Caches / Restart… → Invalidate & Restart。

你可能感兴趣的:(Android Studio/Gradle构建问题集)