从Eclipse迁移代码到Android Studio可能出现的异常

前言:

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 图不允许右侧和下边界有两条划线,而左边界和上边界则没有问题。

参考链接:

http://stackoverflow.com/questions/27448559/android-studio-1-0-compile-error-cant-have-more-than-one-marked-region-along

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 10:29:41

从Eclipse迁移代码到Android Studio可能出现的异常的相关文章

怎么将Eclipse 项目切换到Android Studio

怎么将Eclipse 项目切换到Android Studio? Google 官方已经给出了两种解决方式解决方案. 第一种 直接选择目录,next 一直到最后,我们的Eclipse 的项目就到了Android Studio 上了,需要注意的是,这样导入的项目还是会保留Eclipse 的构建方式,比如我们在Eclipse 上使用Ant 构建,迁移后还是会是会用Ant 构建. 导入Eclipse ADT 第二种 首先,我们在Eclipse 将项目导出为Gradle 项目. 选择导出 导出Gradle

第四章:重构代码[学习Android Studio汉化教程]

第四章 Refactoring Code The solutions you develop in Android Studio will not always follow a straight path from design to finish. To be an effective Android programmer, you need to be flexible and refactor your code as you develop, debug, and test. In t

在eclipse 导入简单的Android studio 简单项目

前言: 现在Android studio版本已经去到2.0(我暂时用着开发者版本)了,但是还是和以前的版本一样卡. (因为我用了很多第三方的UI控件,导致在Android studio build一个项目非常漫长,大约改一个字符需要两三分钟,最长试过5分钟呢. 不过在Eclipse的话,最多只需要半分钟就Build 到在手机,大大减少编译项目时间,有助于开发调试.) 所以我还是用着Android studio来开发,Eclipse 来编译项目. 不过今天不是来说在Android studio如何

eclipse项目导入到android studio中文乱码处理

由于eclipse项目是gbk编码,Android studio默认用的是utf-8. 就会导致代码中的汉字,注释全部显示为乱码. 解决方法:在module的bulid.gradle中加入: compileOptions.encoding = 'gbk' 图例: 然后点击同步就成功了,注意,别加到project的bulid.gradle里去.

从 Eclipse 导入项目到 Android Studio

ADT已经有些过时了,现在比较流行的安卓开发工具是Android Studio,毕竟是谷歌一直在推广的. 最近装了as,从之前的adt迁移项目到as上,遇到了不少坎. 主要注意以下两点: (1)文件路径必须是英文的,如果文件路径含中文会报错: Your project path contains non-ASCII characters. (2)选择文件时,必须只选择包含AndroidManifest.xml 的文件,而不是整个项目文件.  否则可能会报错AndroidManifest.xml

Eclipse 项目转移到Android Studio遇到的问题

1.Android Studio直接导入项目是copy原项目的,无法纳入代码管控 解决方案: 英文地址:http://developer.android.com/sdk/installing/migrate.html 翻译:Android Studio 中文组(大锤译) 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件.因为Android Studio 是用Gradle来管理项

如何把Eclipse工程导入到Android Studio

1 在Eclipse中新建android项目androiddemo.里面只有一个MainActivity,主要是使用fastjson将一个Person对象转化成字符串. 2 在项目上点击右键->Export. 3 在弹出的Export窗口中选择“Android”下面的Generate Gradle build files.然后点击next. 4 然后一路next,选中我们要导出的工程,继续next. 5 最后会提示将要导出的gradle文件的位置,然后点击finish. 6 打开Android

Android eclipse项目转成Android studio项目遇到的问题

导入到Android studio后发现项目的build.grade是这样的. buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0-rc1' } } 这是不能编译的,参照官方的说明: http://tools.android.com/tech-docs/new-build-system/user-guide 编辑成这样: // To

Eclipse项目导入到Android Studio中

背景 最近需要将Eclipse中的android项目导入到Android Studio中!倒腾一番,记录如下! 步骤1 打开Android Studio(下文称AS),选择Import project(Gradle,Eclipse ADT,etc), 定位到你需要导入的主项目,切记是主项目,比如下图XXXX_JX是我的主项目,上面的为我主项目中的依赖项,该项先不管,后继操作! 步骤2 下一步会有如下提示: 英文意思很明显,就是转换后的项目是一个全新的项目,不会改变之前的项目,这里需要给转换后的新