有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android应用程序依赖项ClassNotFoundException

我是Android开发的新手。在普通的EE Java和Gradle中不是很新

因此,我正在尝试为Android构建一个REST消费者应用程序。我有一个(1)。我需要的jar文件(包含DTO和api使用者)。那(1)。jar依赖于Nexus repo的其他(2)个jar。这些(2)确实依赖于maven repos的其他(3)JAR(例如apache commons lang3等)

有趣的是。。。该应用程序编译和安装都很好。但在运行时,它有时会从(1)中丢失一些类(至少(1)——目前还不知道(2)和(3)

我知道SO不喜欢问题中的图片,但在这种情况下,我相信图片=清晰

见下文。同样的运行时间,同样的罐子。只是其中一个类没有加载,而另一个类就在它旁边,是可用的

Some classes are not seen by the classloader

And some are seen

为什么会这样?我做错了什么

还有一件事。。。如果我试图实例化主活动(onCreate()内部)中缺少的一个类(不止一个),有时该类会出现在类路径中,并创建一个对象。尽管听起来很可笑,但还有一门课不见了!感觉Classloader可能处理的类的插槽数量有限

编辑: 好了,好多了。似乎出于某种原因,gradle决定不包括(1)中的一些文件。jar生成。apk。。。 知道为什么吗

格拉德尔4.1。Linux Mint 18。安卓工作室3.0金丝雀8

左反编译APK结构;右-原瓶 enter image description here


共 (1) 个答案

  1. # 1 楼答案

    可能你已经激活了ProGuard。ProGuard从最后的.apk中删除未使用的类ProGuard