以前公司的老项目,是使用eclipse进行开发的,虽然android studio出来了很久,但为了避免迁移会有一些问题,一直忍着没改,但最近谷歌公司上架有要求,要求android的项目要用android 8.0来编译,然后就发现eclipse+ADT已经不支持jdk 1.8还有android 8.0,运行就会有问题,有类似unsported 52.0,还有各种莫名其妙的错误,比如无法识别27,然后搜了一些博客,说下载两个插件就可以,然后我试着到应用市场下载,下载第一个插件没问题,但第二个问题加载到15个的时候,就会一直报错,无法解决,然后想着还不如狠下心来迁移到android studio里面,所以就有了如下的坑:

1.第一个问题就是eclipse开发的android项目,如何变成android studio的项目,有两种方式,我用的是File->Export->Generate Gradle build files然后一直下一步,选择你要导出的项目(不用管依赖项目,会自动导出的):还有另外一种方式是不用修改eclipse的工程,然后打开android studio,选中import project(eclipse ADT..),不过:注意这种方式导入进来的话,会有很多的问题,如果你引用了很多外部的jar包,会遇到很多乱七八糟的问题,我就是一开始由于解决不了,放弃转android studio,还好使用了eclipse生成gradle项目,直接用android studio打开,避免了一些问题.

2.第2步,对了android studio最好是使用最新的3.1.4:使用android studio打开了eclipse android的项目,会遇到一些gradle版本需要重新下载的问题,这些好解决,打开avd managment,下载,点击sync 同步一下,就可以自动下载,最新的android studio会帮你解决很多谷歌的资源无法访问的问题,应该是内部做了很多的代理设置,以前用eclipse都是需要设置一个代理/镜像网址才行的.

3.第3个问题:如果你项目中引用了so文件的话,自动生成android studio项目,运行会报错,如下的错误,一般都是由于你的android studio的build.gradle中没有引用这个libs下armeabi的so文件,你需要增加如下代码在build.gradle:

4.第三步之后,项目可以正常在手机上运行了,不过接下来想发布release版本,就遇到问题了,以前在eclipse打签名包,很简单引入keystore文件就可以了,迁移到android studio中,改用他的签名方式,jks,发现有很多奇怪的错误,debug的签名包是不会报错:

Could not find org.jetbrains.kotlin:kotlin-reflect:1.2.41.
Searched in the following locations:- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.pom- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.jar- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/google/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.pom- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/google/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.jar- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/android/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.pom- file:/E:/android/adt-bundle-windows-x86-20130917/sdk/extras/android/m2repository/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.jar- https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.pom- https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-reflect/1.2.41/kotlin-reflect-1.2.41.jar
Required by:project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools:sdk-common:26.3.0-alpha05project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint:26.3.0-alpha05project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint-gradle-api:26.3.0-alpha05project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint:26.3.0-alpha05 > com.android.tools.lint:lint-kotlin:26.3.0-alpha05project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint:26.3.0-alpha05 > com.android.tools.lint:lint-checks:26.3.0-alpha05 > com.android.tools.lint:lint-api:26.3.0-alpha05

还有各种乱七八糟的错误,这个错误怎么也解决不了,后来将gradle的版本降低了(之前用的4.9,build:gradle:3.5.0-alpha50),使用低版本的4.5,

classpath 'com.android.tools.build:gradle:3.1.4',

这样重启sync工程,神奇般的可以打release包了,贴一下我的配置文件:

(1)build.gradle

buildscript {ext.kotlin_version='1.2.41'repositories {jcenter()google()maven { url 'https://maven.fabric.io/public' }}dependencies {classpath 'com.android.tools.build:gradle:3.1.4'classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'dependencies {compile fileTree(include: '*.jar', dir: 'libs')
}android {compileSdkVersion 26buildToolsVersion "27.0.3"compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}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}sourceSets {main {manifest.srcFile 'AndroidManifest.xml'java.srcDirs = ['src']resources.srcDirs = ['src']aidl.srcDirs = ['src']renderscript.srcDirs = ['src']res.srcDirs = ['res']assets.srcDirs = ['assets']jniLibs.srcDirs = ['libs']}// Move the tests to tests/java, tests/res, etc...//instrumentTest.setRoot('tests')// Move the build types to build-types/<type>// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...// This moves them out of them default location under src/<type>/... which would// conflict with src/ being used by the main source set.// Adding new build types or product flavors should be accompanied// by a similar customization.debug.setRoot('build-types/debug')release.setRoot('build-types/release')}
}repositories {google()
}

(2)gradle-wrapper.properties的文件内容:

#Mon Aug 13 17:54:14 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip

对了,打release包会遇到lint的错误,message窗口会给提示,解决方式:只需要添加:

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
    }

至此,eclipse android项目转android studio大功告成,只能说gradle的东西好坑,有些错误找不到问题所在,记录一下,方便有人遇到同样的错误有参考.

//*****************后来又遇到如下错误:

Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:127)at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)... 49 more
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: android.support.annotation.IntegerResat com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:114)... 52 moreUnexpected inputs: ImmutableJarInput{name=android.local.jars:android-support-v4.jar

各种谷歌百度搜索,就是找不到答案,后来发现一个坑是我以前的eclipse的项目中android-support-v4.jar是放在libs文件夹下面,然后引入到工程里面的,然后我的build.gradle又有重复添加了,我把libs的jar删掉就可以安装apk了,完美...

Eclipse android 项目转android studio填坑之旅相关推荐

  1. Jenkins项目实战之-MacOS High Sierra自动化打包方案的填坑之旅

    前面我介绍了如何在android和iOS实现公司内部app的自动化打包构建的过程.这里写一个关于这个app自动化打包平台从想法到实践再到放机房平稳运行的一个回忆录.总的来说,在jenkins上实现an ...

  2. 【填坑之旅】手把手教你如何用AndroidStudio上传自己的library到Jcenter库

    [填坑之旅]手把手教你如何用AndroidStudio上传自己的library到Jcenter库 前言:我们在使用AndroidStudio的时候,会经常用到第三方的代码库.引入第三方库的方式无非就是 ...

  3. React Native填坑之旅--动画篇

    React Native填坑之旅--Button篇 React Native填坑之旅--动画 React Native填坑之旅--HTTP请求篇 动画是提高用户体验不可缺少的一个元素.恰如其分的动画可 ...

  4. AppCode Updating indexes一直不停的填坑之旅

    最近在做APP安装包瘦身,找到了传说中的AppCode神器. AppCode 提供了 Inspect Code 来诊断代码,其中含有查找无用代码的功能.它可以帮助我们查找出 AppCode 中无用的类 ...

  5. 一次动态代理的填坑之旅

    转载自  一次动态代理的填坑之旅 背景 想在现有的接口加上熔断降级或者限流的功能,比较好的方式是通过注解的方式,并基于动态代理进行实现,下面代码是Rhino的实现 @Rhino public clas ...

  6. 《Getting Started with D3》填坑之旅(六):第三章(下)

    Chapter 3. Scales, Axes and Lines(比例尺.坐标轴与线) (接上篇:<Getting Started with D3>填坑之旅(五):第三章(上)) 示例2 ...

  7. Android Studio 填坑指南

    前几天发布了一篇名为<Android Studio 安装.配置及第一个程序演示>的博文,有不少童鞋都认真阅读过并照步骤一步一步操作了一遍,有滴如期成功地装好了,然鹅有滴反映说这不对呀,为森 ...

  8. android jword.zip,Android 项目打包到 JCenter 的坑

    搜索下如何发布 Android 项目的信息,大部分都会找到这篇文章 Publishing Gradle Android Library to jCenter Repository,中文的指引可以看使用 ...

  9. android 适配简单粗暴,Android10填坑适配指南(实际经验代码)

    Android10填坑适配指南(实际经验代码) 发布时间:2019-12-03 09:40 来源:互联网 当前栏目:web技术类 今天看到一篇好的文章,分享给大家,膜拜大佬. Android10填坑适 ...

最新文章

  1. 几种开源软件名字的读音
  2. 【Android 逆向】ptrace 函数 ( C 标准库 ptrace 函数简介 | ptrace 函数真实作用 )
  3. java ee核心技术_【科普】JavaEE的核心技术
  4. 少年自学python笔记_自学python 笔记
  5. 阿里巴巴集团的几十款著名开源项目(Java)
  6. 算法导论 练习14.1-7
  7. 定时器开始时延时了十几秒_第六章--系统滴答定时器
  8. explain ref_explain的属性详解与提速百倍的优化示例
  9. DevExpress XtraReports 入门五 创建交叉表报表
  10. 标签打印软件如何制作图文标签
  11. 我珍藏很久的网盘资源搜索网站和下载神器
  12. 如何评估开发费 (From 程序匠人)
  13. iphone计算机照片大小,如何把iphone照片导入电脑 四种方法分享【图文】
  14. 查询数据表中重复数据及重复次数
  15. 平安智盈人寿保险计算
  16. xcode设置文字背景图片
  17. 邮箱安全再成热点 金笛企业邮件系统保障企业用户通信安全
  18. linux双系统装了打不开,苹果电脑安装了双系统后,肿么windows系统打不开了
  19. ADN: Artifact Disentanglement Network for Unsupervised Metal Artifact Reduction
  20. 说说海龟交易法则的基本原理,如何实现海龟交易策略?

热门文章

  1. 这家公司,竟然解决了这些困扰智能驾驶测试很久的难题
  2. 燕千云数智化业务服务平台,带来极致的客户及员工服务体验
  3. Windows7端口被占用的解决办法(笔记本端口被占用)
  4. php doc 入门,phpWord入门使用
  5. 篮球服务器维修,永劫无间服务器,瘫痪6小时未恢复惹众怒,法神:最少十个箱子摆平...
  6. 设置控件背景背景颜色为透明
  7. Car-eye 车辆管理系统API设计
  8. php将json转化成数组,PHP怎么把JSON数据转换成数组?
  9. win11环境 cmd 命令窗口 sqlplus 命令无响应
  10. 天狮集团李金元大胆决策创业,天狮直销成为中国直销走出去的典范