【问题标题】:android-way to prevent NoSuchMethodError?防止NoSuchMethodError的android方式?
【发布时间】:2013-07-09 21:19:06
【问题描述】:

我尝试使用需要 api 级别 14 的方法,而我将最低 api 级别设置为 8。如果我不处理该部分,Eclipse 甚至不应该让我编译(例如。@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)) ,但是Eclipse这次没有报错,让我编译成功。在运行时,我在一些旧设备上遇到了 NoSuchMethodError。

我用新的 Eclipse 将完全相同的代码复制到另一台新机器上,而这次 Eclipse 抱怨......为什么会这样? Eclipse 似乎不可靠...是否有任何其他 3rd 方应用程序可以用来检查所有使用的方法是否等于或低于最低 api 级别?或者如果我可以强制 Eclipse 检查?我真的没有办法检查我使用的每一种方法的 api 级别。

感谢您的帮助

【问题讨论】:

    标签: android eclipse nosuchmethoderror


    【解决方案1】:
    if (android.os.Build.VERSION.SDK_INT >= 13) {
                Point size = new Point();
                display.getSize(size);
                width = size.x;
    
            } else
                width = display.getWidth();
    

    【讨论】:

    • if (android.os.Build.VERSION.SDK_INT >= 13) 检查您的版本。您可以检查用户拥有的版本,然后使用您想要的方法。
    • 我想我的问题还不够清楚。我知道如何检查用户的 sdk 版本。我的问题是,如果您关闭 if (android.os.Build.VERSION.SDK_INT >= 13),eclipse 应该会给出类似 Call requires API level 14 (current min is 8) 的错误并阻止您编译应用程序。
    • 出于某种原因,eclipse 在这方面不是很可靠。我仍然可以在我的旧机器上编译...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2017-08-17
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多