构建Cordova安卓应用遇R.id符号找不到错误,需设置WebView allowFileAccess
问题解决:R.id找不到 & WebView allowFileAccess 设置位置
为什么会出现「cannot find symbol」错误?
这个错误的核心原因是布局文件里未定义id为webview的WebView控件,或者R类未正确生成/导入:
- 先检查对应布局XML文件(通常是
res/layout/activity_main.xml),确保存在WebView标签并设置了id:
<WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" />
- 若布局已包含该控件,检查Activity文件顶部是否导入了R类:添加
import 你的应用包名.R;(比如包名是com.example.mywebapp,就写import com.example.mywebapp.R;) - 还可能是项目编译异常,点击Android Studio里的「Sync Project with Gradle Files」按钮,重新生成R类文件。
除了Activity.java,还能在哪里设置allowFileAccess?
- Fragment中:在Fragment的
onViewCreated方法里,通过getView().findViewById(R.id.webview)获取WebView实例,再执行相同的设置逻辑 - 自定义WebView类:如果需要复用WebView配置,可以创建自定义类,在构造函数里直接开启该属性:
public class CustomWebView extends WebView { public CustomWebView(Context context) { super(context); setupSettings(); } public CustomWebView(Context context, AttributeSet attrs) { super(context, attrs); setupSettings(); } private void setupSettings() { WebSettings webSettings = getSettings(); webSettings.setAllowFileAccess(true); } }
之后在布局XML里直接使用这个自定义类替代原生WebView即可。
内容的提问来源于stack exchange,提问作者Panadol Chong
相关产品推荐
相关产品推荐

