PhoneGap中文网

 找回密码
 立即注册
查看: 20854|回复: 0
打印 上一主题 下一主题

Android Studio引入jar包和so库

[复制链接]

87

主题

87

帖子

327

积分

中级会员

Rank: 3Rank: 3

积分
327
跳转到指定楼层
楼主
发表于 2017-8-25 15:45:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文和大家分享的主要是Android Studio引入jar包和so相关内容,一起来看看吧,希望对大家学习Android Studio有所帮助。
  导入jar
  · 将需要导入的jar包复制到module/libs/目录下
  · 修改module/build.gradle文件的dependencies闭包,编辑这个文件有两种方法:
  加入编译jar包的代码,点击AS自动弹出的sync now即可。
  dependencies {
  compile files('libs/AnyOfficeSDK.jar')
  }
  如果你不想在引入每个jar时,都进行上面的操作。那么你完全可以添加下面这行代码,表示编译所有的jar包。同样点击AS自动弹出的sync now
  dependencies {
  compile fileTree(include: ['*.jar'], dir: 'libs')
  }
  导入so
  · module/src/main目录下新建文件夹,文件夹名称为jniLibs,注意大小写不要写错了
  · 将需要导入的so库复制到jniLibs目录下即可
  遇到的问题
  我按照上面的步骤成功导入了jar包和so库,编译并且打包成功。但是在运行app时,闪退!通过抓取日志,发现没有找到jar包的方法:
  No pending exception expected: java.lang.NoSuchMethodError: no static method
  为什么明明导入了jar包,却仍然找不到jar包中的方法呢?由此怀疑是否jar包没有打入apk中呢?又或者已经打入apk,系统为什么没有找到呢?那什么会影响编译打包呢?由此我想到了混淆,打开proguard.cfg文件,添加如下代码:
  -dontwarn com.huawei.**
  -keep class com.huawei.**{*;}
  -dontwarn 表示让ProGuard不要警告找不到com.huawei.** 这个包里面的类的相关引用
  -keep class 表示保持com.huawei.** 这个包里面的所有类和所有方法不被混淆
  再次编译打包,发现apk大小要明显大于之前的包。运行app,问题解决!
来源:简书

it营
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-12-21 23:08 , Processed in 0.074888 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表