1.Android Studio 生成含第三方jar包

今天做jar包的时候需要引入第三方的jar包 但是生成jar包的时候 不包含第三方的jar包,这样的话就需要给使用的人发送两个jar包 ,比较麻烦.因此放到一个jar包中比较合适. library 工程下的 build.gradle 添加如下代码

task makeJar(type: Copy) {    //删除存在的    delete 'build/libs/mySdk_v1.0.0.jar'    //设置拷贝的文件    from('build/intermediates/packaged-classes/release/classes.jar')    //from('build/intermediates/packaged-classes/release/libs/nwdservicesdk_v1.0.0.jar')    //打进jar包后的文件目录    into('build/libs/')    //将classes.jar放入build/libs/目录下    //(我们只关心classes.jar这个文件)    include('classes.jar')    //重命名    rename ('classes.jar', 'mySdk_v1.0.0.jar')}makeJar.dependsOn(build)

但是问题来了,整个项目 在Module中的build—>intermediates—>intermediate-jars中会自动生成一个jar包,一个debug版本一个release版本,不同版本的Android Studio生成的路径可能不同, 这个jar包是不包含源码Module包中Libs下的第三方jar包的,如果引入这个jar包的话,程序会报错NoClassDefFoundError,就是因为没有找到其里面还有的一个第三方jar包 .但是这些jar包都不包含第三方的jar包.

其实也是在build.gradle中用task操作符操作,但是类型不是copy,而是Jar,在Module中的build.gradle中的代码修改如下: xxxxsdk_v1.0.0.jar 为第三方的引用jar包 意思就是 将 classes.jar和 xxxxsdk_v1.0.0.jar 合并成一个jar包

task makeJar(type: Jar) {    archivesBaseName="MySdk_v1.0.0"    //删除存在的    delete 'build/libs/MySdk_v1.0.0'    //设置拷贝的文件    from(project.zipTree('build/intermediates/packaged-classes/release/classes.jar'))    from(project.zipTree('build/intermediates/packaged-classes/release/libs/xxxxsdk_v1.0.0.jar'))    destinationDir = file('build/libs')}makeJar.dependsOn(build)

 

2.Android Studio 引入指定的framework.jar

对于一些要使用修改了系统的API的应用 ,使用AndroidStudio不能编译APK,导入自己编译的framework.jar 进行编译APK

整体编译系统后找到classes.jar包classes.jar包就是 framework.jar 如下:

fclasses.jar 路径

out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar

build.gradle 添加 

dependencies {.......省略代码......    compileOnly files('libs/classes.jar').......省略代码......}

 

更多相关文章

  1. android 按两次返回键强制退出整个APP
  2. Android字体资源
  3. android之Activity基本跳转
  4. 还在用枚举?我早就抛弃了!(Android(安卓)注解详解)
  5. Android(安卓)Studio与CMake
  6. ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
  7. android滑动解锁
  8. Android(安卓)DEX自动拆包及动态加载简介
  9. Android(安卓)SDK和ADT无法更新的解决办法

随机推荐

  1. Android(安卓)分享
  2. Android(安卓)3D与JNI结合的小例子
  3. android隐藏软键盘
  4. android studio在build过程中出现的错误
  5. android 按钮按下效果
  6. H5唤起APP
  7. ubuntu 64 位 开发 android 需要安装的 3
  8. Android的Looper的无限循环为啥不会ANR?
  9. Android(安卓)自定义3D效果View
  10. android中dialog的dismiss()和cancel()的