前言:
Google正在逐渐停止对 Eclipse 的开发,现在Android Studio 正逐渐成为Android 开发的首选,虽然会有一些痛苦,但当大家都熟悉使用 Android Studio 的时候,就会觉得 Google 变换 Android 开发 IDE 的决定是正确的,Android Studio 确实给了 Android 开发者更好的体验和开发环境。 下面我来谈一下自己在从 Eclipse 迁移到 Android Studio 时所遇到的问题。大家可能已经看过很多有关在 Android Studio 中可能出现问题的总结,不过,我这篇文章主要还是写的有关项目原有代码从 Eclipse 迁移到 Android Studio 时会遇到的问题,并没有和 Android Studio 的配置有太大关系。
异常:
匿名内部类调用外部类变量需要声明为final
这是我将 Eclipse 项目迁移到 Android Studio 并使用 Gradle 构建时遇到的第一个问题(在使用Gradle构建之前我已经将代码迁移到了Android Studio 上面,只不过使用的是原来 Eclipse 的结构),异常如下图所示:
出现这个问题主要是因为我的项目中用到了太多的回调,同时,这些回调在实现的时候会有产生界面Dialog元素,Dialog中的点击事件需要再次使用回调中的参数,按理说,这种情况确实是匿名内部类调用到了外部类变量,但是以前在 Android Studio(Eclipse结构的时候) 或者 Eclipse 时候,并没有出现什么异常,在我换成 Gradle 构建的时候就一下子爆发了,所以我只能将项目中的所有这个异常一一修复掉,给变量加上 final 修饰符。
自定义或第三方控件声明
我们在写布局 layout 文件的时候,都有一个默认的name space(命名空间),即:xmlns:android=”http://schemas.android.com/apk/res/android”,但是当我们使用第三方或者自定义控件的时候,就需要自己给它们添加一个额外的命名控件,通常固定格式是:xmlns:app=”http://schemas.android.com/apk/res/packagename”,其中 packagename 部分为你项目的包名,app 则可以自己自定义一个字段即可。这以上只是在 Eclipse 上的命名空间写法,在 Android Studio 上为第三方和自定义控件写命名空间就比较容易了,直接统一写为 xmlns:app=”http://schemas.android.com/apk/auto-res” 即可,无需带上麻烦的包名,当然,如果你在 Android Studio并且使用 Gradle 构建的时候,不这样写也无法通过编译。
编译时.9图产生的异常
最近我在编译项目的时候出现了以下异常:
Error:Can‘t have more than one marked region along edge.
出现这个异常是因为我在 .9 图的右侧画了两条线,由于 .9 图的上边界和左边界的划线是负责拉伸扩展的,而下边界和右边界划线则是内容区域,所以 .9 图不允许右侧和下边界有两条划线,而左边界和上边界则没有问题。
参考链接:
版权声明:本文为博主原创文章,未经博主允许不得转载。