[整理]Androidstudio项目常见问题集

本文汇总了Android Studio项目中常见的问题及解决方案,包括dexDebug编译错误、JDK和SDK路径设置、Gradle版本不匹配、资源合并错误、源码兼容性问题、找不到目标API、使用过时API、资源文件错误、TransformException、冲突类和Eclipse迁移问题等,每个问题都提供了具体的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.dexDebug ExecException finished with non-zero exit value 2

需要在gradle中配置下面的代码,原因是引用了多个libraries文件

defaultConfig {
        multiDexEnabled true
}


event log中报:IllegalArgumentException:Multiple entries with same key: Google Inc.:Google APIs:23=Google APIs (Google Inc.) (API 23) and Google Inc.:Google APIs:23=Google APIs (Google Inc.) (API 23)

解决办法:先看一下系统配置的SDK的位置和Android Studio所用的路径是否一致,如果不一致重新配置系统的SDK路径或者是重新修改Android Studio的SDK路径
通过SDK Manager删除掉google API23
如果解决不了,卸载android studio -->重新安装 ,还有问题点击File --> Invalidate Cashes/Restart --> Invalidate and Restart,解决不了继续通过SDK Manager删除掉google API23
             类型推断是一个特殊的烦恼,下面的代码: 
             Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 
             通过类型推断后变成: 
             Map<String, List<String>> anagrams = new HashMap<>(); 
             这个<>被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。 

二、Android Studio 怎么设置JDK和SDK的路径

刚刚把开发环境换成android studio,还不熟悉,想把jdk和sdk的路径换了,找了半天,才发现是这样的:

  点击File,选择Other Settings,选择Default Project 
Structure...,就可以看到JDK和SDK的设置地方了。供你参考吧。

三、Possible causes:<ul><li>The project ‘XXXXXXX' may be using a version of Gradle that does not contain the method.

原文错误提示:

Error:(16, 0) Gradle DSL method not found: 'Android()'

错误原因:

android studio 引进项目时,自动查找本机是否有项目设置的SDK版本,若发现没有,我们会在project structure修改成自己的SDK。然而,修改后,AS会自动在项目下的build.gradle里添加上以下代码:


解决办法:

删除以上图片中红框中的代码,然后再执行build->Rebuild project,删除完之后的代码如下:

四.Execution failed for task ':app:transformClassesWithJarMergingForDebug'.

去掉本工程中gradle中用于引用有冲突的包的代码或者将冲突的代码从jar包或aar包中移除,确保一个module中只引用了一份相同的第三方包

.project sturcture和Project Structure 无论是按快捷键或者是从files中打开都不显示

五.错误: -source 1.6 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

今天晚上在AS上运行校长项目时,报错如下:

Error:(71, 35) 错误: -source 1.6 中不支持 diamond 运算符(请使用 -source 7 或更高版本以启用 diamond 运算符)

这个错误对应程序里的代码是:

错误

一般正确的写法是在声明的时候指定类型,也就是:

List<PublicBlogListBean>  _hotDatas = new ArrayList<PublicBlogListBean>();

但是在JDK 1.7里新增了一个新特性:

      增强对通用实例创建(diamond)的类型推断 :

也就是说JDK1.7支持这种类型推断后,在声明_hotDatas 时new ArrayList<>里可以不需要加上PublicBlogListBean类型

截图中的错误也提示了:-soure1.6中不支持diamond运算符,Diamond types are not supported at this language level。说明目前使用的JDK版本不支持,但是Project此时的JDK路径正是1.7的版本,这...

事实上项目里还没有对module做源码兼容性的配置,即设置 Source Compatibility和Target Compatibility为1.7:

source

点击ok会后gradle重新构建,确定reload Project下就好啦~

启用

也可以在build.gradle里直接配置:

支持

查找的相关资源:

jdk1.7新特性 

AndroidGradlePlugin指南(六)高级构建定制

六、failed to find target with hash string 'android-23' 

in: /Users/user/file/android/android-sdk-macosx。Error:A problem occurred configuring project ':app'.

更新23API,建议直接用androidsudio,根据建议更新。

七、注: /Users/user/Downloads/GuideView-master/guideview/src/main/java/com/blog/www/guideview/Guide.java使用或覆盖了已过时的 API。

解决方案:同错误五

八、Error:Execution failed for task ':app:mergeDebugResources'.

> /Users/user/Downloads/GuideView-master/app/src/main/res/assets/review.gif:1:1: Error: 前言中不允许有内容。

解决方案:
http://stackoverflow.com/questions/18302603/where-to-place-assets-folder-in-android-studio 这里很好的解释了该问题。
将assets目录移到src/main/ 目录下即可。

九、com.android.build.api.transform.TransformException:

 java.util.zip.ZipException: duplicate entry: android/support/v4/app/BackStackState$1.class
原因:在所添加的jar包或aar包中也引用了support-V4,与工程中引用的相冲突
Ctrl+N --> 在搜索框中输入BackStackState --> 查找到所有引用该类的类,这些类即为引起冲突的类

一般情况就是检查build.gradle内dependencies依赖的内容。

十、clipse转android studio项目点9图片检查问题

补充:eclipse转android studio项目点9图片检查问题:在build.gradle里添加以下两句:aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值