坚持WebView教程 - R.id问题?

时间:2014-08-18 17:03:22

标签: java android webview

早上好 - 我希望每个人都度过一个愉快的周末。

我在https://developer.chrome.com/multidevice/webview/gettingstarted

的教程后面遇到了一些问题

在完成有关编辑MainActivity类的步骤之前,一切进展顺利。这是添加WebView:https://developer.chrome.com/multidevice/webview/gettingstarted#add_the_webview

部分中的第3步

以下是 AndroidManifest.xml 的内容:

 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.nathan.myapplication" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MyActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.INTERNET" />

</manifest>

这是我的 MyActivity.java

package com.example.nathan.myapplication;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;

public class MyActivity extends Activity {
private WebView mWebView; // Added by ND Guthrie 8.15.2014:2229

@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    mWebView = (WebView)findViewById(R.id.activity_my_webview);  // Added by ND Guthrie 8.15.2014:2231
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.my, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

我在stackoverflow上尝试了基于这些链接的建议:

Error with R class import in android

Android Studio don't generate R.java for my import project

R.id cannot be resolved

对于R类导入的错误,我尝试添加行

import com.TestApp.HelloWebView.R;

但没有成功,因为TestApp无法识别。这是有道理的,因为我没有在我的应用程序中命名任何“TestApp”,但我不明白如何解决它。

我还尝试删除生成的文件夹并清理和重建项目。但是,我得到了相同的结果。

我知道这可能是一个愚蠢的小事,但我现在一直在搜索谷歌和stackoverflow几天,似乎只有我没有看到的东西。

有什么想法吗?请指教。

非常感谢你的时间!

最佳, 森

1 个答案:

答案 0 :(得分:0)

它的工作方式是Eclipse中的XML文件在后台编译成资源,并生成一个允许项目引用这些资源的R.java。如果你把&#34; R.id.blah&#34;或&#34; R.layout.blah&#34;或者在Eclipse中的任何内容都没有被识别,它意味着以下之一:

  1. 您的XML文件没有相应的元素。 R.java正在创建,但并不包含&#34; R.id.blah&#34;或者您正在使用的任何内容,因为您的XML文件不包含可以使用这些ID进行编译的元素。
  2. R.java根本无法编译。如果您的项目中存在错误,那就是这种情况。你最好确保没有错误(任何地方没有红色交叉),然后看看R.java是否出现。完成后,您将能够找到正在生成的ID,这应该指向您在XML文件中缺失或不一致的方向。