我们有工作的 android 应用程序,它于 04.2012 发布在 Google Play 中。我们几个月都没有碰它。
12 月,我们决定进行圣诞节更新。然而,写这个项目的程序员在九月份离开了我们,所以我们不得不从存储库下载他的代码。事实证明,该存储库版本缺少我们的应用程序所依赖的 2 个项目,因此我们必须从 Web 下载它们(它们是开源项目)并添加为 denendent 项目(项目属性 -> android ->“库”部分->添加)。
我们做了几个小改动,一切正常,没有任何问题。
但!在某些时候出了点问题:
当项目的调试版本(使用调试密钥签名)安装到设备(真实设备,而不是模拟器)上时,它可以工作;
当项目的发布版本(使用发布密钥签名)安装到设备上时,它在启动时崩溃。错误:
java.lang.RuntimeException:无法实例化活动 ComponentInfo{packageName/packageName.MainActivity}:java.lang.ClassNotFoundException:在路径上找不到类“packageName.MainActivity”:/data/app/packageName-1.apk
我们如何解决这个问题:我们改变了将这 2 个开源项目(上面提到的)添加到我们的应用程序的方式。特别是,我们删除了项目依赖并添加了 jar-files 依赖。所以它开始工作了。我无法理解将这些用作图书馆项目有什么问题。为什么它只有在我们添加 jar 文件后才开始工作?可能有人可以帮助理解它。