在旧设备中不支持的代码中,Android发生了什么



例如,我的活动类中有一种看起来像

的方法
ViewTreeObserver observer = buttonsContainer.getViewTreeObserver();
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                    observer.removeOnGlobalLayoutListener(mButtonsObserverListener);
                } else {
                    observer.removeGlobalOnLayoutListener(mButtonsObserverListener);
                }

我可以抑制棉绒警告,但是在旧的Android 2.2上将执行该代码的何处会发生什么?在旧SDK中没有" remove gongloballayoutlistener"函数,该平台如何编译并运行?

它确实编译了,因为您的android:minSdkVersion足够高。它也将安装在您的设备上。您的应用将继续运行,直到必须执行未知代码为止。您的应用程序现在只会崩溃。

为什么不在模拟器上尝试一下。

您的代码将抛出一个MethodNotFoundException,您的应用将崩溃,或者 - 如果有一个 - 跳到周围的try/catch块。

(在Android 1.6上,当包含代码的类而不是执行内部代码时,将抛出ClassNotFoundException

相关内容

最新更新