You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:搭建WebView时遇'type parameter t incompatible upper bounds'错误求助

解决WebView类名冲突导致的类型不兼容错误

嘿,我立马就发现你遇到的问题根源啦!

你写的Activity类名字是WebView,这和Android系统自带的android.webkit.WebView控件类完全重名了。这就造成了一个非常隐蔽的混淆:

  • 你代码里的WebView mWebView;这句,其实是在声明一个你自己的Activity类的实例,而不是系统的WebView控件。
  • 但findViewById(R.id.webView)返回的是系统原生的WebView控件对象,这两个类型根本不兼容,所以编译器才会抛出'type parameter t has incompatible upper bounds view and webview'这个错误。

两种快速解决方法

方法1:修改Activity类名(推荐)

这是最彻底的方案,直接避免类名冲突。把你的Activity类改成一个不会和系统类重名的名字,比如WebViewActivity:

public class WebViewActivity extends AppCompatActivity {
    String url = "";
    WebView mWebView; // 现在这里的WebView自动指向系统的android.webkit.WebView

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        mWebView = findViewById(R.id.webView); // 错误会直接消失
    }
}

方法2:明确指定系统WebView的完整包名

如果你不想修改Activity类名,可以在声明控件变量时,用完整的包名来指定系统的WebView类,消除歧义:

public class WebView extends AppCompatActivity {
    String url = "";
    android.webkit.WebView mWebView; // 明确告诉编译器这是系统的WebView控件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        mWebView = findViewById(R.id.webView); // 类型匹配,错误解决
    }
}

另外提一句:你之前尝试的开启DataBinding、清理重建项目这些操作,其实和这个问题没有关系哦,这个错误完全是类名冲突导致的类型不匹配问题~

内容的提问来源于stack exchange,提问作者Pradeep Behera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:13:15