android studio与eclipse_androidstudio源码网

android studio与eclipse_androidstudio源码网 以前公司的老项目,是使用eclipse进行开发的,虽然androidstudio出来了很久,但为了避免迁移会有一些问题,一直忍着没改,但最近谷歌公司上架有要求,要求android的项目要用android8.0来编译,然后就发现eclipse+ADT已经不支持jdk1.8还有android8.0,运行就会有问题,有类似unsported52.0,还有各种莫名其妙的错误,比如无法识别27,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

 以前公司的老项目,是使用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打开,避免了一些问题.

android studio与eclipse_androidstudio源码网

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

android studio与eclipse_androidstudio源码网

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

android studio与eclipse_androidstudio源码网

android studio与eclipse_androidstudio源码网

android studio与eclipse_androidstudio源码网

android studio与eclipse_androidstudio源码网

    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-alpha05
    project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools:sdk-common:26.3.0-alpha05
    project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint:26.3.0-alpha05
    project : > com.android.tools.lint:lint-gradle:26.3.0-alpha05 > com.android.tools.lint:lint-gradle-api:26.3.0-alpha05
    project : > 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-alpha05
    project : > 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',

android studio与eclipse_androidstudio源码网

     这样重启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 26
    buildToolsVersion "27.0.3"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility 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.IntegerRes
	at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
	at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:114)
	... 52 more

Unexpected inputs: ImmutableJarInput{name=android.local.jars:android-support-v4.jar

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185951.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • javaweb项目图书管理系统教程(图书管理系统java课程设计)

    版权声明:本文为博主原创文章,未经博主允许不得转载2019.5.22更新看到很多人看这个项目我也没想到,不过我现在不在CSDN写文章了,博客地址链接←这是我的博客地址链接GitHub地址链接←这是我的github地址链接里面有我学习Java的过程以及笔记,希望大家一起交流。由于刚刚学习完JSP和Servlet在学习框架之前下你给更加巩固一下前面的知识所以写…

    2022年4月15日
  • 监控流媒体服务器的搭建和使用_rtmp推流服务器

    监控流媒体服务器的搭建和使用_rtmp推流服务器当我们从网络摄像头上接收视频时,首先要了解协议(RTSP/RTMP/HTTP),然后是解码格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步到流媒体平台(比如视频直播点播平台EasyDSS)播放。本文和大家讲一下视频流媒体服务器中RTMP和RTSP区别是什么?大家都知道我们研发的不同视频流媒体服务器是接入不同协议的,国标流媒体服务器接入GB28181协议,而视频直播点播流媒体服务器就是接入RTSP和RTMP协

    2022年10月20日
  • 移动端避免使用100vh[通俗易懂]

    移动端避免使用100vh[通俗易懂]CSS中的视口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height:100vh,您拥有一个完美的全屏元素,该元素会随着视口的变化而调整大小!可悲的是,事实并…

    2022年6月9日
  • JavaScript 正则表达式全面总结

    JavaScript 正则表达式全面总结如果您发现错误,请一定要告诉我,拯救一个辣鸡(但很帅)的少年就靠您了!本文适合有JavaScript基础&&面向搜索引擎书写正则的人群。正则表达式是用于匹配字符串中字符组合

    2022年7月3日
  • PHP feof() 函数

    PHP feof() 函数

    2021年11月10日
  • goland激活码最新【2021.7最新】

    (goland激活码最新)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号