【问题标题】:Android/Java: use method from prior SDK, undefined in current SDKAndroid/Java:使用之前 SDK 中的方法,在当前 SDK 中未定义
【发布时间】:2014-04-29 20:15:59
【问题描述】:

为 Android 开发,我的目标是 SDK 18,它不再包含方法“setPluginsEnabled”(websettings)。如果用户运行的是旧版 SDK (if version <= 4.2, websettings.setPluginsEnabled(true)),我想使用此方法,但我不确定是否可以抑制“方法未定义”错误。

@SuppressLint("NewApi") 在这里不起作用

编辑:我意识到现在有setPluginsEnabled (setPluginState) 的替换方法,但我仍然很好奇是否有办法在必要时抑制

【问题讨论】:

    标签: java android compilation compiler-errors


    【解决方案1】:

    method undefined 表示编译器在您提供的 SDK 中无法实际找到此方法。我想,您已将 SDK > 4.2 附加到您的项目中。它不能被抑制,如果你想使用这种方法,你应该在你的项目中使用旧的 SDK。尝试使用targetSDK = 17

    【讨论】:

    • 对,4.2 是 SDK 17,我的目标是 SDK 18。所以听起来我应该告诉编译器以某种方式在以前的 SDK 中寻找这个方法?
    • @bababooey 您可能针对的是 API 级别 18,但您使用的是哪个版本进行编译? - 这才是最重要的
    • @panini 也使用 18 进行编译。我在项目设置中指定了这一点。是否可以使用特定的 SDK 编译特定的代码块?
    • @bababooey 尝试使用targetSDK = 17,在 18 中删除,从 9 开始弃用
    【解决方案2】:

    这是实际上已被删除而不是被弃用的少数方法之一。 如果你想使用 setPluginsEnabled 编译你的代码,那么你需要使用 Android 4.2.2 来编译它(API 17)。在 API 17 之前,该方法刚刚被弃用。

    您需要将构建目标设置为 Android 4.2.2 或更低版本:

    【讨论】:

    • 它实际上仍然可以工作到 4.2,但是是的,他们确实删除了它。看起来在 4.3 中,webView.getSettings().setPluginState(WebSettings.PluginState.ON); 可以工作
    • 他不需要将目标设置为 8。在版本 9 中,此方法刚刚声明为已弃用,但仍然可以使用。
    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 2013-05-04
    • 2023-03-11
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多