美文网首页
Android Studio打包问题:gradle打包Andro

Android Studio打包问题:gradle打包Andro

作者: 玛玛哈哈m | 来源:发表于2017-10-13 10:38 被阅读0次

    Android Studio打包时,默认会将依赖包一起打包


    因为Unity在打包时,会将自带的那个classes.jar拷贝进apk,如果aar里的classes.jar不删除,打包时就会产出冲突,得到下面的错误:

    IOException: Failed to Move File / Directory from 'Temp/StagingArea\android-libraries\app-release\classes.jar' to 'Temp/StagingArea\android-libraries\app-release\libs\classes.jar'.

    也就是说,每次我们测试后,都需要将aar里的这个jar包手动删除。


    找了资料,打包时不包含某个库的方法

    File->Project Structure里,将Compile改成Provided,经测试有效

    有时候会发现,在这里不能修改,尝试在APP的build.gradle文件里手动修改:

    dependencies {

    compile files('libs/BaiduLBS_Android.jar')

    provided files('libs/classes.jar')

    compile files('libs/wechat-sdk-android-with-mta-1.3.4.jar')

    compile files('libs/alipaySdk-20170725.jar')

    }

    采用provided的方式,在编译开发的时候,会被引用,但是在打包带的时候,就不会打进来。这种方式也是 library scope.


    Compile

    compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。

    Provided

    Provided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。

    APK

    只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错

    Test compile

    Test compile 仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。

    Debug compile

    Debug compile 仅仅针对debug模式的编译和最终的debug apk打包。

    Release compile

    Release compile 仅仅针对Release 模式的编译和最终的Release apk打包。

    相关文章

      网友评论

          本文标题:Android Studio打包问题:gradle打包Andro

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