我已经构建了一个在Android 2.3。*和4.0。*上运行良好的Android应用程序。但是,在将我的设备升级到Jelly Bean(4.1.1)之后,我发现我的应用程序无法正常运行(崩溃,ANR等)。
作为临时解决方法,我想知道是否可以将Android框架JAR的早期版本(比如说Android 2.3)打包到我的APK中并强制我的所有代码在该JAR中使用类/ API?
我认为在我的APK中加入JAR会更容易。但我不知道如何在运行时强制我的代码在JAR中使用类/ API。
我知道它不是一个不错的修复(黑客,包大小,法律问题等),即使它会起作用。但我只是好奇它是否可行。
任何建议或提示都将不胜感激!
我尝试了以下内容:
但是,我的代码似乎仍在使用Android设备中安装的SDK实际版本的类/ API。 :(
出于性能原因,似乎所有框架/核心类都已在系统启动期间由Zygote从设备(/system/framework/framework.odex)预加载。所以,即使我已经将这些类包含在我们的APK中,预先加载的类仍将被实例化。
这对我来说听起来像死路一条...... :(
答案 0 :(得分:3)
作为临时解决方法,我想知道是否可以将Android框架JAR的早期版本(比如说Android 2.3)打包到我的APK中并强制我的所有代码在该JAR中使用类/ API?
这是不可能的,对不起。您认为“Android框架JAR”没有代码 - 它只是Android SDK中公开的类和方法的存根实现。真正的Android框架驻留在固件中,您无法替换它。