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);
    }
}
求助这个提示要怎么解决呢?

解决方案 »

  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.   

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

  6.   

    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"
         />这个是我自己加上去的,不知道这样可以不?
      

  7.   

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

  8.   

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

  9.   

    综合大家的帮助,我修改了一下代码: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(),问题是出在哪里呢?
      

  10.   

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

  11.   


    有可能是你在导入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一下,这样三步下来,就能搞定你的问题了。