首页 > 系统 > Android > 正文

Android Eclipse 到Studio 项目搬迁常见问题

2019-11-09 17:47:01
字体:
来源:转载
供稿:网友

1:直接从eclipse 导出后导入到 studio gradle第一行 apply plugin: ‘android’ 报错 说不能识别 ”android” 字段; 原因:eclipse 导出的 gradle没有指定 版本 ,缺失下面这一段(没有指定gradle版本,这里指定用你已经有的版本(2.2.0),写成其他版本分分钟卡死在building那里)

buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}

2:导入到 studio后项目结构不一致,之前eclipse 的assets 要对应在 studio main->assets 文件夹 drawable 保持跟eclipse 一样

3:使用webScoket的话 org.webSocket 包名 会被studio 强制去掉org (无解),但代码里导入包它没有修改,导致 引用到org 包的代码全部错误.. 解决:在eclipse 里先重命名 这个包,在把整个包复制到studio

4.资源文件合并出错 A: .9.png 问题(app:mergeDebugResources错误 Crunching Cruncher chat_left.9.png failed, see logs ) ;

原因:studio 对资源文件检查更加严格, .9图片必须得有黑点,没有过不去,出现错误 就把对应的图片改掉或者让美工重新换一张没有alpha通道的.9图就好了

B:资源文件 重复(比如string 定义重复的名字,style 有重复的等等,ec是可以检查通过的但as就不行) 解决:去掉重复的文件名称,id等

5:Execution failed for task ‘:app:PRocessDebugManifest’. Manifest merger failed with multiple errors, see logs 原因:stuido 会把依赖库跟主项目的Manifest 进行合并,这就是合并出错 解决: 1.在manifest 下添加 xmlns:tools=”http://schemas.android.com/tools” 2.在application 下添加tools:replace=”android:icon, android:theme”(这里有坑,replace 的可能有 icon,name,label,theme 4个 这不能全写 也不能漏,要对应你的项目,检查自己主项目跟各个依赖都有哪些是相同的,只写相同的)

6:如果你的项目引入了 httpmime.jar httpCline.jar studio 编译不通过 原因 未知 解决:在gradle 添加下面 代码

android { packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } // ...}

7:V4 v7 包问题,在项目中可能主项目跟依赖同时都引用了 V4 这时主项目又引用了V7包,很可能打包apk时会报’Error:Execution failed for task’:app:transformClassesWithDexForDebug…v4..’,跟v4有关的错(很诡异的是直接运行apk不会报这错)这很可能就是引用v7时会引用跟v7相同版本的v4然后你的依赖中又引入了不同版本的v4(这时可以到主项目.idea–>library下看看里面是不是有2个v4), 解决方法: 在 主项目grald中添加

allprojects { configurations { all*.exclude group: 'com.android.support', module: 'support-v4' } }

8: 关于编码问题,从ec->as后 本来一个类在ec好好的 到as后各种不能识别(编译报错 非法字符”/ufeff),这时有可能是编码格式不一致导致 解决 :将有错误的类用notepad(或者其他工具)打开,点格式,转换为以UTF-8无BOM格式,保存 后覆盖上去就可以.

9:混淆时报错: java.io.IOException: The same input jar is specified twice” 原因:就会出现这样的错误,这是应为在android studio中,他已经默认将jar包不进行混淆了,如果你再加入的话就twice了 解决 :将混淆规则中的 -libraryjars libs/… 去掉就好.

9:资源文件错误,主题目录不一致 ec: parent=”@android:Theme.Dialog as: parent=”@android:style/Theme.Dialog”

搬迁建议 0:先在ec上键一个空项目 搬到as上(这个失败那大项目就不用玩了,如果选择搬迁的话); 1:先熟悉studio基本操作(主要granld,添加项目,添加依赖 设置依赖等,界面那些不用管) 2:建议直接重建项目,不要用ec 导出在导入(重建跟导出导入花不了多少时间,重建能一步一步解决问题) 3:重建的时候 先复制资源文件过去,在把代码复制过去(就这2样,其他先不管),先build 一下,看错误如果不是报依赖类库丢失,那先解决掉那些问题 4:依赖类库 能在仓库找到的 就直接引用仓库的,实在不知道的鬼在一个一个导进来 5:最后在把ec 项目的AndroidManifest 内容复制到as AndroidManifest 里

点击这里查看相关博客


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表