前天准备发包了,测试完毕,打好正式签名包,装到手机上,运行不起来。

网上查了大量资料,都没有解决方案。

log显示如下:

04-26 10:07:57.727 1538-1538/? I/MultiDex: VM with version 2.1.0 has multidex support
04-26 10:07:57.728 1538-1538/? I/MultiDex: install
04-26 10:07:57.728 1538-1538/? I/MultiDex: VM has multidex support, MultiDex support library is disabled.
04-26 10:07:57.771 1538-1553/? D/BitmapCache.initDiskCache(L:101): create disk cache success
04-26 10:07:57.850 1805-1844/? W/WindowAnimator: Failed to dispatch window animation state change.
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:503)
at android.view.IWindow$Stub$Proxy.onAnimationStopped(IWindow.java:534)
at com.android.server.wm.WindowAnimator.updateWindowsLocked(WindowAnimator.java:289)
at com.android.server.wm.WindowAnimator.animateLocked(WindowAnimator.java:681)
at com.android.server.wm.WindowAnimator.access$000(WindowAnimator.java:53)
at com.android.server.wm.WindowAnimator$1.doFrame(WindowAnimator.java:123)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:672)
at android.view.Choreographer.doFrame(Choreographer.java:605)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
at com.android.server.ServiceThread.run(ServiceThread.java:46)
04-26 10:07:57.851 1805-1844/? I/Timeline: Timeline: App_transition_ready time:823509261
04-26 10:07:57.856 1805-1844/? I/Timeline: Timeline: App_transition_ready time:823509265
04-26 10:07:57.889 1538-1538/? I/System.out: imid = null
04-26 10:07:57.992 1538-1538/? D/AndroidRuntime: Shutting down VM

后来调试发现,去掉混淆才可以运行,但是研究MultiDex发现跟混淆没有关系,而是只要获取java.vm.version的版本号是>=2.1就直接结束了安装。

private static final boolean IS_VM_MULTIDEX_CAPABLE = isVMMultidexCapable(System.getProperty("java.vm.version"));

public static void install(Context context)
{
Log.i("MultiDex", "install");
if (IS_VM_MULTIDEX_CAPABLE) {
Log.i("MultiDex", "VM has multidex support, MultiDex support library is disabled.");
return;
}

static boolean isVMMultidexCapable(String versionString)
{
boolean isMultidexCapable = false;
if (versionString != null) {
Matcher matcher = Pattern.compile("(\\d+)\\.(\\d+)(\\.\\d+)?").matcher(versionString);
if (matcher.matches()) {
try {
int major = Integer.parseInt(matcher.group(1));
int minor = Integer.parseInt(matcher.group(2));
isMultidexCapable = (major > 2) || ((major == 2) && (minor >= 1));
}
catch (NumberFormatException localNumberFormatException)
{
}
}
}

Log.i("MultiDex", new StringBuilder().append("VM with version ").append(versionString).append((isMultidexCapable) ? " has multidex support" : " does not have multidex support").toString());

return isMultidexCapable;
}

今天早上上班,打开studio ,提示需要升级Gradle版本到2.1.0(原来是2.0.0),然后升级以后,再打包测试了一下,一切又恢复正常了。

然后这个问题是跟Gradle的版本有关,至此这个问题算是解决了。

最新文章

  1. 微信官方demo(php)
  2. java线程小结3
  3. [转]setValue和setObject的区别
  4. 6.1.2Linux下Socket编程
  5. Codeforces 616E - Sum of Remainders
  6. WCF 第五章 会话级别的实例
  7. 纯CSS3实现超立体的3D图片侧翻倾斜效果
  8. Prolog学习:基本概念 and Asp.net与Dojo交互:仪器仪表实现
  9. [一波低姿势的usaco除草记]
  10. Android设置对话框去除黑边
  11. 201521123112《Java程序设计》第1周学习总结
  12. 解题思路:house robber i && ii && iii
  13. [bzoj1273] [BeiJingWc2008]序列
  14. Vue下路由History mode导致页面无法渲染的原因
  15. adjustResize模式下ExpandaleListView中输入框焦点错乱及布局底部的导航栏被顶在键盘上方的处理
  16. redux中间件的原理
  17. Java day1
  18. 软件工程_2nd weeks
  19. js多次触发事件,在一定延迟内只执行一次 (事件累加)
  20. 使用独立的log4net.config文件配置log4net,将日志记录到Mysql数据库【原创】

热门文章

  1. Social Emotional Computing
  2. Android开发之Menu和actionBar
  3. 请问-bash-4.1$ 出现故障的原理及解决办法?
  4. java 数据绑定的几种方式及相关注意事项-持续更新
  5. http强制跳转到https
  6. iOS开发小技巧--计算label的Size的方法总结
  7. 【BZOJ 1177】【APIO 2009】Oil
  8. Android进程回收机制LMK(Low Memory Killer)
  9. 内存溢出OOM与内存泄漏ML
  10. 【凯子哥带你学Framework】Activity启动过程全解析