"包文件无效",来自开发者方的解决方案(Android)

时间:2014-07-18 06:32:39

标签: android install package

我很难看到很多关于此问题的Stackoverflow问题,即使在Google论坛或Google官方支持网站上,发布导致通过ADB卸载软件包的“解决方案”,也可以根据手机执行某些操作,删除缓存Google Play服务等...

包装方是否有任何解决方案?

我的意思是,我有一个包含数十万次安装的应用程序,不幸的是,许多用户在从我的新版本商店升级时抱怨此错误。

显然,我不能一个一个地告诉他们必须做这个或那个,因为他们不是开发人员,他们只是想升级并运行一个应用程序!

有些用户告诉我(抱怨)自从我的应用上次“升级尝试”以来发生这种情况,并且他们没有遇到手机中任何其他应用的“包文件无效”。

所以,我想这是我可以用另一次升级修复的东西。

我可以在下一个APK编辑中执行任何解决方案,上传到Google Play商店并在不“困扰”我的用户的情况下修复此问题吗?

提前谢谢

1 个答案:

答案 0 :(得分:0)

我的项目也面临同样的问题。我正在使用新的jar,git开源库代码为Nice UI添加更多功能。

为了搜索解决方案,我发现Play商店在其中一个更新中存在问题 http://www.androidcentral.com/google-investigating-package-file-invalid-errors-google-play 但这与我的问题完全无关

再次搜索我发现了这个 http://birbit.com/how-to-solve-linearalloc-problem/ 所以解决方案看起来是使用DexClassLoader动态加载几个jar文件。 http://android-developers.blogspot.in/2011/07/custom-class-loading-in-dalvik.html

  1. 准备jar文件的接口(所有类和方法的列表)并在应用程序中使用界面 - 需要查看如何执行此操作。 - 我们可以在我们的应用程序中拥有我们需要的那些类,并忽略其余的类。这样我们就可以实现几个现有的罐子和我们必须添加的任何新罐子,以确保我们不再遇到这个问题。
  2. 将jar保留在资产文件夹
  3. 从jar中加载每个类(基于我们在界面中的jar列表)。 (这些类将在首次启动时加载一次)
  4. 但基于此,这看起来涉及许多编码变化和耗时的事情。

    此外,我发现Facebook在他们最初的Android应用程序中也遇到了同样的问题 https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920

    我采用的最终方法是从jar / git库项目中删除其他代码,这对我的应用程序来说是不需要的。之后,我的应用程序在2.3.X上安装,没有错误。