首先介绍一下BUG情景,因为是刚刚接触android studio,所以刚开始用的时候还只是基于android studio 1.4进行开发。最近公司要求使用高级的IDE版本以及Gradle,从未接触过studio升级的我,开始了挖坑的旅途。
首先肯定是升级Android studio到3.0,直接从IDE升级,然后你懂的...不是无法更新就是下载很慢很慢~于是果断换了国内的镜像网站下载。
这里给大家一个网址进行参考下载:http://www.android-studio.org/
接下来就是gradle的升级了,studio在这一点上做的还是可以的,一进入软件,就会在右下角提示需要 update gradle 到3.0版本(忘记截图了),点击确认静等studio下载就好了。然后就是Android sdk manager升级android build tools了: File==>Setting==>System Settings==>android sdk ==>这时的界面右边可以看到你当前的sdk各种工具的版本号了。(studio1.4在这个界面的底部是有一个 “launch *** Android SDK manager ”,大致的意思是启动SDK自带的下载界面,但在studio3.0的界面是没有的。估计是google想将这一功能整合到studio中吧。 )
你可以在android sdk中看到各种工具的状态,SDK Platforms 中可以下载你想要的Android API版本:
SDK tools 可以下载你需要的开发工具,右下角的选框可以查看详细的版本信息。一般如果有需要更新的版本,Status会有update的提示。
第三个标签页 SDK update sites,这个大致说的是SDK的更新地址,应该默认就好了,没有设置过。
转载请加上原文地址:http://blog.csdn.net/qq_33745652/article/details/78456085
当IDE以及SDK都已经更新好后,接下来就是很正常的测试程序是否可以正常运行了,程序run起来,部署到测试机。异常出现了:程序启动,然后崩溃~!!!
异常信息: java.lang.ClassNotFoundException: Didn't find class "*****" on path: DexPathList[[zip file "/data/app/******.apk"],
1.尝试mark程序,一切正常,重新部署到测试机,异常还在。
2.clean ==> rebuild ,异常继续。
3.尝试取消外部libaray的引用,然后重新部署,异常继续...
4.检查module的build.gradle文件,然后发现 问题所在了...
// dex突破65535的限制
multiDexEnabled true
注销上述代码后,程序可正常部署到测试机并运行,确定问题所在。
原来是我之前留下的坑,因为这份工作第一次接触android stuido,build.gradle文件里的设置都不知道是用来干什么的,只是从网上照搬下来的设置。
我在bulid.gradle中设置 multiDexEnabled true,并没有在程序相应的地方设置对应的设置内容。
可以给大家提供一篇博客,大家有空也可以去看下stuido关于Dex的设置:
http://blog.csdn.net/wangbaochu/article/details/46536635
以上只是我的个人因为之前留下的坑,造成的这种奇奇怪怪的BUG;因为这个问题,我也看了网上不少的解决方案,
这里也贴出来方便大家解决自己的问题:
http://blog.csdn.net/lovexieyuan520/article/details/9032797/
(这其中有些是Eclipse的解决方案,可以参考部分。)
https://stackoverflow.com/questions/22399572/
java-lang-classnotfoundexception-didnt-find-class-on-path-dexpathlist
(英文网站,看不懂可以下一个有道翻译一下,基本就懂了。)
(上面是基于程序部署到测试机的设置,也可以尝试一下。重点是加粗字体部分。)
PS:补充一下在升级好stuido3.0后遇到的一些问题:
1.Error:All flavors must now belong to a named flavor dimension.
解决方案:http://blog.csdn.net/syif88/article/details/75009663
2.Annotation processors must be explicitly declared now.
解决方案:http://blog.csdn.net/keep_holding_on/article/details/76188657
3.No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Invers
解决方案:http://blog.csdn.net/u013042707/article/details/63283367
(关于上面这个问题,还有些补充,当前compileSdkVersion 如果使用26的话,
下面引入的Android support libaray也要设置到对应的版本
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0')
最后,个人检验,仅供参考。希望大家都能解决自己的问题~~~