热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidGradle项目构建常见问题解决

我们经常会将一些Android开源项目导入到Androidstuido项目中来运行,gradle构建时就会出现各种各样的奇葩问题,下面来说说我们在开发中常遇到的一些问题!1.1.创

我们经常会将一些Android开源项目导入到Android stuido项目中来运行,gradle构建时就会出现各种各样的奇葩问题,下面来说说我们在开发中常遇到的一些问题!

1.1. 创建或导入项目后编译时一直在等待

问题:

《Android Gradle项目构建常见问题解决》

原因:AS连网去下载gradle了,但是网络不好或不通
解决:禁用网络,AS就会立即自动终止下载进入到主界面了。此时再去指定离线的gradle版本进行编译;

《Android Gradle项目构建常见问题解决》
《Android Gradle项目构建常见问题解决》

1.2. Unknow host ‘services.gradle.org’

问题:

《Android Gradle项目构建常见问题解决》

原因:当你导入第三方项目时,别人项目使用的gradle的版本与你的不一样,这时as就会连网去下载gradle版本,但是找不到services.gradle.org服务器。

解决:不要去下载不同的gradle版本,可以指定gradle为离线工作模式,使用你当前已存在的gradle版本就可以了[AndroidStudio在安装时就自带了gradle的版本,见androidstudio安装目录下的gradle文件夹]。

《Android Gradle项目构建常见问题解决》
《Android Gradle项目构建常见问题解决》

1.3. Gradle DSL method not found: ‘android()’

问题:Error:(16,0) Gradle DSL method not found: ‘android()’

《Android Gradle项目构建常见问题解决》

原因:当你通过Project Structure修改了编译的版本或工具时,就可能会在Project的build.gradle配置文件中添加如下脚本代码,此时就会导致上面报错了,这是AS本身的bug。

《Android Gradle项目构建常见问题解决》

android {
compileSdkVersion 23
buildToolsVersion **"23.0.0"
}

解决方法:应当把上述的代码添加到module的build.gradle文件中,而不能添加到Project的build.gradle文件中。

1.4. Project中的build.gradle提示Gradle插件版本报错

问题:

《Android Gradle项目构建常见问题解决》

原因:这种情况一般出现在导入其他人的项目,或者更新了android studio之后。原因是android studio是依赖gradle构建的,在构建android项目的时候,会使用到android gradle插件。但你的project中的build.gralde文件里声明的gradle插件的版本不存在或者版本过低,所以导致报错了。

解决:通过以下方式查看你的gradle插件的版本,指定为该版本即可。

[或者默认创建一个AndroidStudio项目,看看默认的gradle插件版本是什么,修改成那个版本即可]

《Android Gradle项目构建常见问题解决》

1.5. 找不到编译的android sdk版本

问题:

《Android Gradle项目构建常见问题解决》

原因:找不到编译的android sdk版本
解决:你可以按提示打开 Android sdk Manager去下载相应的版本,但最好的解决方式是把编译的版本修改为你当前存在的sdk版本就可以了。
你只需修改module的build.gradle文件中的如下版本:

《Android Gradle项目构建常见问题解决》

1.6. Junit导致的出错

《Android Gradle项目构建常见问题解决》

解决:因为暂没有用到java单元测试从app的build.gradle文件中把该行引用删掉即可

1.7. Hamcrest-core.jar导致出错

《Android Gradle项目构建常见问题解决》

解决:这个是因为最新的创建项目会使用junit库来进行代码测试,在下载这个库的内容的时候发现他引用了hamcrest这个框架,不过国内下载这个jar包hamcrest-core.jar不成功,所以会报这个错误。简单的处理方式是把build.gradle里引用的junit删除掉。

1.8. ANDROID_DAILY_OVERRIDE 问题:gradle插件太旧了

Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to “e877086ba74456e68d4c929dc482539df9ffac38”

解决:添加系统环境变量后重启Studio
环境变量:ANDROID_DAILY_OVERRIDE, 值为:41b72d353033bfb5aa4d6a98088a908dcae15ef9

1.9. 项目放在中文路径下报错

《Android Gradle项目构建常见问题解决》

出错详情:Error:(9, 0) Your project path contains non-ASCII characters. This will most likely cause the build to fail on Windows. Please move your project to a different directory. See http://b.android.com/95744 for details. This warning can be disabled by using the command line flag -Dcom.android.build.gradle.overridePathCheck=true, or adding the line com.android.build.gradle.overridePathCheck=true’ to gradle.properties file in the project directory.

描述:项目不能放到中文路径下,否则会可能会出现如上错误。
解决:
方法一:路径不要有中文
方法二:在C:\Users\Administrator.gradle目录下的gradle.properties(如果该文件不存在则创建)文件中添加如下设置:com.android.build.gradle.overridePathCheck=true

1.10.SDK23编译报httpclient的出错

《Android Gradle项目构建常见问题解决》

解决:Android SDK23版本把httpclient从sdk中移除了,如果使用它,需要手动添加httclient 的jar包:

《Android Gradle项目构建常见问题解决》

1.11.解析引用的第三方依赖失败了

《Android Gradle项目构建常见问题解决》

解决: 如下下图,取消offline work前的勾,停用离线工作模式,再构建让AS联网去下载依赖aar即可。

下载完编译成功后,再改回离线工作的模式。

《Android Gradle项目构建常见问题解决》

1.12.AndroidStudio编译图片报错

AndroidStudio对图片格式要求比较严格,比如一些点九的图片,或格式不标准的png图片,都有可能因为图片格式原因导致AndroidStudio编译报错

《Android Gradle项目构建常见问题解决》

1.13.Multiple Dex file

《Android Gradle项目构建常见问题解决》

解决方式:重复添加jar包了,把重新添加的jar包移除即可。

1.14.创建项目后布局文件预览出错WindowDecorActionBar

如下所示:

《Android Gradle项目构建常见问题解决》

问题:Api 23使用了ToolBar代替actionbar, 主题中找不到actionbar所以出错了。

解决:把sytles.xml中如下默认的主题:

修改成Base.Theme.AppCompat.Light.DarkActionBar
或者:Theme.AppCompat.Light.NoActionBar

1.15.AS导入eclipse项目后运行到模拟器显示乱码

重新设置编码,删除安装包后,重新编译运行;

《Android Gradle项目构建常见问题解决》

1.16.文件目录太深了

《Android Gradle项目构建常见问题解决》


推荐阅读
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
author-avatar
mobiledu2502876193
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有