美文网首页首页投稿(暂停使用,暂停投稿)
从Eclipse迁移到Android Studio,并打包指定文

从Eclipse迁移到Android Studio,并打包指定文

作者: LinkZhang | 来源:发表于2016-01-10 18:35 被阅读1892次

    近期在维护一些老代码,是使用Eclipse开发的,我想用过Android Studio的人,再回去用Eclipse是无比难受的,所以趁着周末,赶紧把代码迁移到Android Studio。

    迁移步骤

    1. 打开Android Studio选择Import Project(Eclipse ADT, Gradle,etc.)
    2. 选择Eclips项目AndroidManifest.xml文件所在的目录,单击确定
    3. 选择保存转换后项目的路径
    4. 后面,默认即可,如果项目依赖其它项目,会一同导入。
    5. 稍等一会,项目就导入完毕

    打包指定文件到jar中

    经常需要把项目打包成jar,以供其它程序使用,Eclipse导出jar非常方便,Android Studio需要在module的build.gradle中进行配置

    android{
    ......
    }
    dependencies {
    ......
    }
    //打包之前,删除以前的文件
    task clearJar(type: Delete) {
        delete 'build/libs/test.jar'
    }
    
    //打包生成test.jar
    task makeLibraryJar(type:org.gradle.api.tasks.bundling.Jar) {
        //指定生成的jar名
        baseName 'test'
        //从哪里打包class文件,可以指定文件和目录
        from('build/intermediates/classes/debug/com/example/test/')
        //打包到jar后的目录结构
        into('com/example/test/')
        //去掉不需要打包的目录和文件
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }
    
    makeJar.dependsOn(clearJar,build)
    

    在自带命令行下运行

    gradle makejar
    

    即可生成需要的jar包

    问题和解决方法

    迁移完成之后,直接编译可能会遇到一些问题,以下是我遇到的问题和解决方案

    配置Android NDK

    解决方法:在local.properties文件中加入

    ndk.dir = XXXX
    

    Error:(12, 0) Error: NDK integration is deprecated in the current plugin.

    解决方法:需要在gradle.properties文件中加入

    android.useDeprecatedNdk=true
    

    Error:(2, 18) string: No such file or directory

    解决方案:程序使用了C++标准库,需要在模块的build.gradle加上

    stl "gnustl_static"
    

    Error:Duplicate files copied in APK META-INF/LICENSE.txt

    解决方案:在module的build.gradle中加入

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

    Error:(17, 28) 错误: 程序包org.apache.http.util不存在

    解决方案:以前的项目使用了httpclient,而在Android 6.0已经把httpclient相关代码移除,如果需要使用,需要在module的build.gradle中加入

    android {
        useLibrary 'org.apache.http.legacy'
    }
    

    参考

    迁移过程参考一下文档:

    相关文章

      网友评论

        本文标题:从Eclipse迁移到Android Studio,并打包指定文

        本文链接:https://www.haomeiwen.com/subject/wquqkttx.html