【问题标题】:@JavascriptInterface cannot be resolved@JavascriptInterface 无法解析
【发布时间】:2013-01-16 07:10:03
【问题描述】:

我正在使用 Android 使网页与我的应用交互。因此,我浏览了文档和教程并最终提出了this site。在其中,开发人员列出了您应该在希望 WebView 访问的任何函数之前包含 @JavascriptInterface,如果没有它,Jelly Bean 将无法识别该函数。

我的问题是,当我把它放进去时,我得到一个错误提示:

@JavascriptInterface 无法解析为类型

没有它,我的代码可以编译并正常工作,但我希望 Jelly Bean 兼容。我目前正在以 Android 1.6 为基础,所以它只是没有@JavascriptInterface 吗?那是果冻豆特有的东西吗,这意味着我必须专门为果冻豆制作一个程序?任何帮助将不胜感激。这是我完整的接口类:

import android.content.Context;

public class WebAppInterface{

    Context mContext;

    /** Instantiate the interface and set the context */
    WebAppInterface(Context c) {
        mContext = c;
    }

    /** Show a toast from the web page */
    //needed for jelly bean
    @JavascriptInterface
    public void turnOff() {
        MyAlarmPopup.turnOff();
    }

}

【问题讨论】:

    标签: javascript android webview android-4.2-jelly-bean


    【解决方案1】:

    @JavascriptInterface 在 JellyBean 中引入。

    您需要将项目构建目标设置为 API 级别 17

    从 Eclipse IDE 转到 Project->Properties。 选择Android并设置目标

    该 APK 将适用于旧版本的 android。

    【讨论】:

    • @nimmy 我如何才能为较低的 API 级别执行此操作??
    • 对于较低的 API 级别,不要添加@JavascriptInterface。它仍然可以正常工作。
    【解决方案2】:

    你需要添加这个:

    import android.webkit.JavascriptInterface;
    

    Check the sample here:

    【讨论】:

    • 只有当我们像上面的答案一样将目标设置为 API 级别 17 时才可用。
    • 这工作得很好,应该是公认的正确答案。说明您需要设置目标 API 级别 17 的注释不正确,因为不需要。
    【解决方案3】:

    Android Studio 用户步骤:

    1. 检查 build.gradle 中的 minSdkVersion 是否为 17 或更高
    2. 添加import android.webkit.JavascriptInterface;

    【讨论】:

    • 欢迎提供简短的回答,但是对于试图了解问题背后原因的后者用户而言,它不会提供太多价值。请抽出一些时间来解释导致问题的真正问题是什么以及如何解决。谢谢~
    • 对那些想知道为什么必须进行上述步骤的人进行更详细的解释:
    • 1.需要,因为您需要 17 的 min sdk 级别,但在 AS 中,与 eclipse 不同,minsdkVersion 是在 build.gradle 中设置的,而不是在清单文件中。 2. 导入必须手动完成,因为在当前的 Android Studio 版本 3.1.3 中,自动导入不会使用快捷键 alt + enter 导入注释,而且我没有看到在文件 -> 设置中设置它的方法-> 编辑器 -> 常规 -> 自动导入菜单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    相关资源
    最近更新 更多