将eclipse中的Android项目导入到Android Studio

12 篇文章 0 订阅
8 篇文章 0 订阅

摘要:最先尝试的方法是从eclipse导出项目时选择Generate Gradle build files,然后在Android Studio导入,需要更新gradle的版本,保留了原始的目录结构,后来在更新gradle时遇到了很多问题,也记不清了,后来使用的是直接将项目导入到Android Studio,由Android Studio来重新构造目录结构.1

导入

Import

  • 选择工程在的路径,然后finish,等待Android Studio构造项目
    导入工程

简单介绍一下import summary

在导入工程后,会在第一时间出现import summary

Ignored Files(最重要的部分)


Android Studio会在这一步忽略掉不属于Android标准目录的文件,比如用户自定义文件夹,混淆文件,所以必须要检查一下是否有重要文件在这一步被Android Studio忽略掉

Replaced Jars with Dependencies


在Android Studio中你可以添加在线的jar或者库,所以常见的android-support-v4.jar兼容包都会转化com.android.support:support-v4:19.1.0,当然由于兼容包多样化,在这一步转换可能会遇到一些问题,以后会提到

Moved Files


  • 将so文件移动到app/src/main/jniLibs目录下,Android Studio默认会识别这个目录
  • 将lib目录下的jar移动到app/libs/下
  • 将项目中引用的其他资源例如html都移动到app/src/main/resources/

Next Steps和Bugs略过

常见问题

9-patch

在Android Studio对9-patch的检查非常严格,不允许存在bad patches,也不允许不是9-patch的图片命名为9.png


错误日志

9-patch image /Users/liuende/Documents/test/app/src/main/res/drawable-mdpi/btn_style_zero_presse.9.png malformed.
AAPT:        Frame pixels must be either solid or transparent (not intermediate alphas).
AAPT:        Found at pixel #6 along top edge.

解决方案

  • 关闭Android Studio对png图片合法性的检查,在app/build.gradle中的android后的大括号中添加下述代码,然后sync now,rebuild
    aaptOptions{
        cruncherEnabled=false
        useNewCruncher=false
    }
  • 如果仍然存在报错,对报错的图片重命名,例如test.9.png重命名为test.png

文件含有BOM

错误日志

Error:(1, 1) 错误: 非法字符: '\ufeff'

错误原因

类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符,即BOM,但是在很多代码中不会忽略,导致错误

简单介绍一下BOM

注:Java在读取Unicode文件的时候,会统一把BOM变成“\uFEFF”.2

  BOM —— Byte Order Mark,中文名译作“字节顺序标记”。
  UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式,其中字符 “Zero Width No-Break Space” 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。
  对于UTF-16或者更高,字符U+FEFF如果出现在字节流的开头,则用来标识该字节流的字节序,是高位在前还是低位在前。

解决方案

* Eclipse可以自动把UTF-8+BOM文件转为普通的UTF-8文件,但AndroidStudio需要手动修改*

方法一

利用Android Studio将文件编码改为GBK,再转为UTF-8即可以解决,操作位置在Android Studio右下角

  • 选择编码
  • 点击convert
    这里写图片描述
  • 再重复执行1和2,转化为UTF-8
方法二

利用Android Studio自带的终端打开问题文件,然后使用vim打开文件,在命令模式下set nobomb

文件编码不正确

错误日志

Error:(6, 4) 错误: 编码UTF-8的不可映射字符

错误原因

文件原先是使用GBK或者其他非UTF-8的编码格式,在导入Android Studio时以UTF-8编码格式加载所以产生乱码

解决方案

先将文件以GBK的格式加载,再转化为utf-8

  • 选择文件原先的编码

  • 点击Reload
    这里写图片描述

  • 在通过第一步选择utf-8,点击convert,转化文件编码格式为utf-8

包引用出现问题

jre中的rt.jar没有被引用到项目中国

错误日志
Error:(44, 28) 错误: 程序包javax.imageio.stream不存在
错误说明

目录jre下的jar包并不会默认引用到项目中

解决方法

注:compile 意味着你需要编译和运行应用程序的JAR。对于一个web应用程序,例如,JAR将被放置在web - inf / lib目录中。provided意味着你需要为编译JAR提供,但在运行时环境已经提供,对于一个web应用程序,这意味着JAR文件将不会被放置到web - inf / lib目录中

  • 在app/gradle.build下dependencies中添加下述配置
 provided files('/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/rt.jar')

打包apk时报错

错误日志

注:Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过它对Android工程源代码进行扫描和检查,可发现潜在的问题,以便程序员及早修正这个问题

Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.

错误说明

Android Studio在打包成release版时,默认会对代码进行扫描和检查,发现潜在的代码,而由于eclipse和Android Studio的代码检查不同,导致很多在eclipse警告的代码,在打包时直接报错

解决方案

  • 在app/gradle.build中添加下述配置
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }

build时内存不够

永久解决办法

  • 新建文件~/.gradle/gradle.properties
org.gradle.jvmargs=-Xmx1536M
org.gradle.daemon=true
org.gradle.parallel=true                    
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值