如何解决您将如何解决仅在Android中在发布模式下出现的依赖项错误? 上下文问题我们尝试过的事情环境
上下文
我们有一个在Kotlin中构建的Android应用,并且已经将算法层划分为一个单独的Android项目。我们使用以下代码使用Gradle将其作为依赖项导入:
在build.gradle
中:
dependencies {
...
implementation project(':algos-android')
}
此algos-android
项目具有自己的依赖性-koma
-在algos-android
项目的build.gradle
文件中定义,如下所示:
dependencies {
...
implementation group: "com.kyonifer",name:"koma-core-ejml",version: "0.12"
}
问题
以debug
模式(在buildTypes
的{{1}}中定义)运行应用程序时,这完全可以正常工作。但是,当以build.gradle
模式运行时,当我们的算法层使用其子依赖性-release
时,我们会在运行时看到错误。
控制台中显示以下错误:
koma
我的团队假设Gradle为我们处理了子依赖关系。有人遇到过这样的问题吗?有什么好的调试方法吗?
我们尝试过的事情
- 将
java.lang.IllegalStateException: No double matrix factories available. (Did you forget to import a koma-core implementation?)
项目中的所有文件直接移到主项目中,并将algos-android
直接导入主项目的koma
文件中。
环境
- Android Studio 4.0.1
- 科特林1.3.72版
- 版本6.3
- 从属仓库: https://github.com/kyonifer/koma
解决方法
我们终于能够找出问题并通过proguard-rules.pro
文件添加以下内容来解决此问题:
-keep class koma.** { *; }
我们能够发现,由于Matrix工厂类使用反射在koma源中被夸大了,因此proguard认为它们是未使用的,只是从发行版本中删除了它们。
注意::如果您看到并修复了此问题,请不要忘记在运行之前清理项目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。