id cannot be resolved or is not a field

时间:2023-01-29 09:20:08
Activity.java代码:

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebView;
import android.webkit.WebSettings;

public class test extends Activity{
private WebView mWebView;
private Handler mHandler = new Handler();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(new Object(){
         public void screenSize() {
         mHandler.post(new Runnable(){
         public void run(){
         mWebView.loadUrl("javascript:test()");
         }
         });
         }
        }, "demo");
        
        super.setIntegerProperty("splashscreen", R.drawable.ic_launcher);
        super.setIntegerProperty("splashscreen", R.drawable.bg);
        super.loadUrl("file:///android_asset/www/index.html",4000);
    }
}


求助这个提示要怎么解决呢?

14 个解决方案

#1


哪行出错?

super.loadUrl,你的super不是webView,可以这样用?

#2


 mWebView = (WebView) findViewById(R.id.webview);

这一行出错,我是菜鸟,基本不懂java的,只是项目涉及到java但又出错了。代码是网上收集拼凑的,1楼能具体说说应该怎么修改吗?

#3


super.setIntegerProperty("splashscreen", R.drawable.ic_launcher);
        super.setIntegerProperty("splashscreen", R.drawable.bg);
        super.loadUrl("file:///android_asset/www/index.html",4000);
这几个前面的super全部改成mWebView

#4


super这个是phonegap自己生成的,不能修改呀。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。

        
setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(new Object(){
            public void screenSize() {
                mHandler.post(new Runnable(){
                    public void run(){
                        mWebView.loadUrl("javascript:test()");
                    }
                });
            }
        }, "demo");



这几行是网上找的,我是想传值给javascript。

#5


是不是我的问题太难解决了。。?没见有几个高手近来捧场呢?

#6


如果是mWebView = (WebView) findViewById(R.id.webview);这行出错的话,说明布局文件main.xml里面没有定义webview这个ID

#7


main.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
    
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
        
    <WebView
     android:id="@+id/webview"
     />

</LinearLayout>


<WebView
     android:id="@+id/webview"
     />

这个是我自己加上去的,不知道这样可以不?

#8


顶顶吧,这个问题还是比较急的。

#9


继续盼望高手的帮助。。。

#10


开发环境问题吧

如果是在eclipse下,安装好ADT插件的话,写好xml然后刷新下项目,新的id就会在R.java里生成出来

#11


WebView没定义宽高,这样子也能编译过吗?

#12


综合大家的帮助,我修改了一下代码:

public class test extends DroidGap {
private WebView mWebView;
private Handler mHandler = new Handler();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(new Object() {
         public void screenSize() {
         mHandler.post(new Runnable() {
         public void run() {
         DisplayMetrics DM = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(DM);
         mWebView.loadUrl("javascript:test('"+DM.widthPixels+"','"+DM.heightPixels+")");
         }
         });
         }
        }, "welcome");
        
        super.setIntegerProperty("splashscreen", R.drawable.ic_launcher);
        super.setIntegerProperty("splashscreen", R.drawable.bg);
        mWebView.loadUrl("file:///android_asset/www/welcome.html");
    }
}


我是想在JAVA里获取手机屏幕的分辨率,然后传值给js使用。编译是通过了,手机上也能运行这个apk,可是感觉就没有调用js的test(),问题是出在哪里呢?

#13


这个涉及js的执行流程吧
1.你的welcome.html里要执行  welcome.screenSize() 
2.回调java代码得到屏幕尺寸
3.调用js里的test(w,h)方法

#14



有可能是你在导入android.R的时候出错了,建议删除import android.R 然后重新编译。
 
是否安装了JAVA SDK 6?是的话这个问题好办,打开eclipse,菜单栏选择window->preferences,弹出对话框,对话框左侧菜单选择java->compiler,再在对话框右侧找到compiler compliance level 这个选项,选择1.5,问题解决。
 
不同的eclipse版本具体选择路径可能不同,不过只要找到JAVA编译器选项将其选为1.5就可以。
 
1.先检查你的代码,代码有误,R.java文件是生成不了的
 
2. 把Project ----> Build Automatically那个选项勾上,让工程每次修改完后都会自动编译,这样R.java会是最新的(这时候程序有误,不会生成)
 
3. Project ---> Clean,点开后,选中你的工程,然后OK,会Reset你的工程设置,然后重新Build一下,这样三步下来,就能搞定你的问题了。

#1


哪行出错?

super.loadUrl,你的super不是webView,可以这样用?

#2


 mWebView = (WebView) findViewById(R.id.webview);

这一行出错,我是菜鸟,基本不懂java的,只是项目涉及到java但又出错了。代码是网上收集拼凑的,1楼能具体说说应该怎么修改吗?

#3


super.setIntegerProperty("splashscreen", R.drawable.ic_launcher);
        super.setIntegerProperty("splashscreen", R.drawable.bg);
        super.loadUrl("file:///android_asset/www/index.html",4000);
这几个前面的super全部改成mWebView

#4


super这个是phonegap自己生成的,不能修改呀。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。

        
setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(new Object(){
            public void screenSize() {
                mHandler.post(new Runnable(){
                    public void run(){
                        mWebView.loadUrl("javascript:test()");
                    }
                });
            }
        }, "demo");



这几行是网上找的,我是想传值给javascript。

#5


是不是我的问题太难解决了。。?没见有几个高手近来捧场呢?

#6


如果是mWebView = (WebView) findViewById(R.id.webview);这行出错的话,说明布局文件main.xml里面没有定义webview这个ID

#7


main.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
    
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
        
    <WebView
     android:id="@+id/webview"
     />

</LinearLayout>


<WebView
     android:id="@+id/webview"
     />

这个是我自己加上去的,不知道这样可以不?

#8


顶顶吧,这个问题还是比较急的。

#9


继续盼望高手的帮助。。。

#10


开发环境问题吧

如果是在eclipse下,安装好ADT插件的话,写好xml然后刷新下项目,新的id就会在R.java里生成出来

#11


WebView没定义宽高,这样子也能编译过吗?

#12


综合大家的帮助,我修改了一下代码:

public class test extends DroidGap {
private WebView mWebView;
private Handler mHandler = new Handler();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mWebView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(new Object() {
         public void screenSize() {
         mHandler.post(new Runnable() {
         public void run() {
         DisplayMetrics DM = new DisplayMetrics();
         getWindowManager().getDefaultDisplay().getMetrics(DM);
         mWebView.loadUrl("javascript:test('"+DM.widthPixels+"','"+DM.heightPixels+")");
         }
         });
         }
        }, "welcome");
        
        super.setIntegerProperty("splashscreen", R.drawable.ic_launcher);
        super.setIntegerProperty("splashscreen", R.drawable.bg);
        mWebView.loadUrl("file:///android_asset/www/welcome.html");
    }
}


我是想在JAVA里获取手机屏幕的分辨率,然后传值给js使用。编译是通过了,手机上也能运行这个apk,可是感觉就没有调用js的test(),问题是出在哪里呢?

#13


这个涉及js的执行流程吧
1.你的welcome.html里要执行  welcome.screenSize() 
2.回调java代码得到屏幕尺寸
3.调用js里的test(w,h)方法

#14



有可能是你在导入android.R的时候出错了,建议删除import android.R 然后重新编译。
 
是否安装了JAVA SDK 6?是的话这个问题好办,打开eclipse,菜单栏选择window->preferences,弹出对话框,对话框左侧菜单选择java->compiler,再在对话框右侧找到compiler compliance level 这个选项,选择1.5,问题解决。
 
不同的eclipse版本具体选择路径可能不同,不过只要找到JAVA编译器选项将其选为1.5就可以。
 
1.先检查你的代码,代码有误,R.java文件是生成不了的
 
2. 把Project ----> Build Automatically那个选项勾上,让工程每次修改完后都会自动编译,这样R.java会是最新的(这时候程序有误,不会生成)
 
3. Project ---> Clean,点开后,选中你的工程,然后OK,会Reset你的工程设置,然后重新Build一下,这样三步下来,就能搞定你的问题了。