导入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
,问题解决!
来源:
简书