我创建了一个我希望能够在其他Android应用程序中使用的Android库。我在与图书馆相同的项目中创建了一个小型测试应用程序,一切正常。
为了测试与其他应用程序的集成,我创建了一个新的应用程序,并按照this guide通过从库的AAR文件创建一个新模块将我的库导入到该新应用程序。
build.gradle文件:
dependencies {
...
compile project(':my-sdk')
...
}
settings.gradle文件:
include ':app', ':my-sdk'
编译成功了,我可以在测试应用程序中使用库的API,但在运行时我得到运行时异常
java.lang.NoClassDefFoundError:解析失败:Lokhttp3 / MediaType;
我认为这是一个依赖项问题,因为库使用okhttp
作为依赖项,可能没有在AAR文件中打包。我无法在任何地方找到如何编译此依赖项,因此它可以在其他项目中使用。
答案 0 :(得分:0)
我修复了添加jar文件而不是将maven添加到我的模块中,然后组合发布aar,并在app项目中禁用“Instant Run”。