From 64dc0380127047ffcf135b6848c9150aa8dbed85 Mon Sep 17 00:00:00 2001 From: Deepanshu Gupta Date: Wed, 16 Oct 2013 20:27:51 -0700 Subject: Fix layoutlib [DO NOT MERGE] Fix a NPE. The cherry-pick differs slightly from the original to remove changes not relevant to the current branch. Bug: 11140701 Change-Id: Id92fc5359acf6dde1bcdbc781aaf637fdb6eecbf (cherry-picked from 87be67f91719234cbd381ff0242b5efc8b6aa257) --- .../android/layoutlib/bridge/impl/RenderAction.java | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java index b20f190..60b20a6 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderAction.java @@ -246,11 +246,16 @@ public abstract class RenderAction extends FrameworkReso * The counterpart is {@link #setUp()}. */ private void tearDown() { - // Make sure to remove static references, otherwise we could not unload the lib - mContext.disposeResources(); + // The context may be null, if there was an error during init(). + if (mContext != null) { + // Make sure to remove static references, otherwise we could not unload the lib + mContext.disposeResources(); + } - // quit HandlerThread created during this session. - HandlerThread_Delegate.cleanUp(sCurrentContext); + if (sCurrentContext != null) { + // quit HandlerThread created during this session. + HandlerThread_Delegate.cleanUp(sCurrentContext); + } // clear the stored ViewConfiguration since the map is per density and not per context. ViewConfiguration_Accessor.clearConfigurations(); @@ -261,8 +266,12 @@ public abstract class RenderAction extends FrameworkReso sCurrentContext = null; Bridge.setLog(null); - mContext.getRenderResources().setFrameworkResourceIdProvider(null); - mContext.getRenderResources().setLogger(null); + if (mContext != null) { + mContext.getRenderResources().setFrameworkResourceIdProvider(null); + mContext.getRenderResources().setLogger(null); + } + + mContext = null; } public static BridgeContext getCurrentContext() { -- cgit v1.1