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

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 里

点击这里查看相关博客

猜你喜欢

转载自blog.csdn.net/lqb3732842/article/details/54911207