Buggy code:
public abstract class CobaltFragment extends Fragment implements SwipeRefreshLayout . OnRefreshListener , IScrollListener { protected static final String TAG = CobaltFragment . class . getSimpleName ( ) ; protected Context mContext ; protected ViewGroup mWebViewContainer ; protected OverScrollingWebView mWebView ; protected CobaltSwipeRefreshLayout mSwipeRefreshLayout ; protected Handler mHandler = new Handler ( ) ; private ArrayList < JSONObject > mWaitingJavaScriptCallsQueue = new ArrayList < JSONObject > ( ) ; private boolean mPreloadOnCreate = true ; private boolean mCobaltIsReady = false ; private boolean mIsInfiniteScrollRefreshing = false ; private CobaltPluginManager mPluginManager ; @ Override public void onAttach ( Activity activity ) { } @ Override public void onCreate ( Bundle savedInstanceState ) { } @ Override public View onCreateView ( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) { } @ Override public void onActivityCreated ( Bundle savedInstanceState ) { } @ Override public void onStart ( ) { } @ Override public void onStop ( ) { } @ Override public void onSaveInstanceState ( Bundle outState ) { } @ Override public void onDestroy ( ) { } protected int getLayoutToInflate ( ) { } protected void setUpViews ( View rootView ) { } protected int getWebViewContainerId ( ) { } protected int getSwipeRefreshContainerId ( ) { } protected void setUpListeners ( ) { } protected void addWebView ( ) { } protected void setWebViewSettings ( Object javascriptInterface ) { <START_BUG> if ( ( VERSION . SDK_INT ) >= ( VERSION_CODES . HONEYCOMB ) ) <END_BUG> mWebView . setLayerType ( LAYER_TYPE_HARDWARE , null ) ; mWebView . setScrollListener ( this ) ; mWebView . setScrollBarStyle ( SCROLLBARS_INSIDE_OVERLAY ) ; WebSettings webSettings = mWebView . getSettings ( ) ; webSettings . setJavaScriptEnabled ( true ) ; webSettings . setDomStorageEnabled ( true ) ; webSettings . setDatabaseEnabled ( true ) ; webSettings . setDatabasePath ( ( ( mContext . getFilesDir ( ) . getParentFile ( ) . getPath ( ) ) + "//databases//" ) ) ; allowAjax ( ) ; mWebView . requestFocus ( FOCUS_DOWN ) ; mWebView . setOnTouchListener ( new View . OnTouchListener ( ) { @ Override public boolean onTouch ( View view , MotionEvent event ) { switch ( event . getAction ( ) ) { case MotionEvent . ACTION_DOWN : case MotionEvent . ACTION_UP : if ( ! ( view . hasFocus ( ) ) ) { view . requestFocus ( ) ; } break ; default : break ; } return false ; } } ) ; mWebView . addJavascriptInterface ( javascriptInterface , "Android" ) ; mWebView . addJavascriptInterface ( new fr . cobaltians . cobalt . database . LocalStorageJavaScriptInterface ( mContext ) , "LocalStorage" ) ; WebViewClient webViewClient = new WebViewClient ( ) { @ Override public void onPageFinished ( WebView view , String url ) { executeWaitingCalls ( ) ; } } ; mWebView . setWebViewClient ( webViewClient ) ; } @ SuppressLint ( "NewApi" ) private void allowAjax ( ) { } private void preloadContent ( ) { } private void loadFileFromAssets ( String file ) { } private void removeWebViewFromPlaceholder ( ) { } private void executeScriptInWebView ( final JSONObject jsonObj ) { } private void executeWaitingCalls ( ) { } public void sendCallback ( final String callbackId , final JSONObject data ) { } public void sendEvent ( final String event , final JSONObject data , final String callbackID ) { } public void sendPlugin ( final String plugin , final JSONObject data , final String callbackID ) { } public void sendMessage ( final JSONObject message ) { } @ JavascriptInterface public boolean handleMessageSentByJavaScript ( String message ) { } private void onCobaltIsReady ( ) { } protected void onReady ( ) { } private boolean handleCallback ( String callback , JSONObject data ) { } protected abstract boolean onUnhandledCallback ( String callback , JSONObject data ) { } private boolean handleEvent ( String event , JSONObject data , String callback ) { } protected abstract boolean onUnhandledEvent ( String event , JSONObject data , String callback ) { } private boolean handleUi ( String control , JSONObject data , String callback ) { } protected abstract void onUnhandledMessage ( JSONObject message ) { } private void push ( String controller , String page ) { } private void pop ( ) { } private void pop ( String controller , String page ) { } private void presentModal ( String controller , String page , String callBackID ) { } private void dismissModal ( String controller , String page ) { } private void replace ( String controller , String page , boolean animated ) { } public void askWebViewForBackPermission ( ) { } protected void onBackPressed ( boolean allowedToBack ) { } private void showWebLayer ( JSONObject data ) { } protected CobaltWebLayerFragment getWebLayerFragment ( ) { } public void onWebLayerDismiss ( final String page , final JSONObject data ) { } private void showAlertDialog ( JSONObject data , final String callback ) { } private void showDatePickerDialog ( int year , int month , int day , String title , String delete , String cancel , String validate , String callbackID ) { } protected void sendDate ( int year , int month , int day , String callbackID ) { } private void openExternalUrl ( String url ) { } protected void setRefreshColorScheme ( int colorResource1 , int colorResource2 , int colorResource3 , int colorResource4 ) { } @ Override public void onRefresh ( ) { } private void refreshWebView ( ) { } private void onPullToRefreshDidRefresh ( ) { } protected void onPullToRefreshRefreshed ( ) { } @ Override public void onOverScrolled ( int scrollX , int scrollY , int oldscrollX , int oldscrollY ) { } private void infiniteScrollRefresh ( ) { } private void onInfiniteScrollDidRefresh ( ) { } protected void onInfiniteScrollRefreshed ( ) { } private boolean isPullToRefreshActive ( ) { } private boolean isInfiniteScrollActive ( ) { } protected String getPage ( ) { } }

Fix:
if ( ( VERSION . SDK_INT ) > ( VERSION_CODES . ICE_CREAM_SANDWICH_MR1 ) )