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,可以这样用?
super.loadUrl,你的super不是webView,可以这样用?
#2
mWebView = (WebView) findViewById(R.id.webview);
这一行出错,我是菜鸟,基本不懂java的,只是项目涉及到java但又出错了。代码是网上收集拼凑的,1楼能具体说说应该怎么修改吗?
这一行出错,我是菜鸟,基本不懂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
super.setIntegerProperty("splashscreen", R.drawable.bg);
super.loadUrl("file:///android_asset/www/index.html",4000);
这几个前面的super全部改成mWebView
#4
super这个是phonegap自己生成的,不能修改呀。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。
这几行是网上找的,我是想传值给javascript。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。
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代码:
<WebView
android:id="@+id/webview"
/>
这个是我自己加上去的,不知道这样可以不?
<?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里生成出来
如果是在eclipse下,安装好ADT插件的话,写好xml然后刷新下项目,新的id就会在R.java里生成出来
#11
WebView没定义宽高,这样子也能编译过吗?
#12
综合大家的帮助,我修改了一下代码:
我是想在JAVA里获取手机屏幕的分辨率,然后传值给js使用。编译是通过了,手机上也能运行这个apk,可是感觉就没有调用js的test(),问题是出在哪里呢?
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)方法
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,可以这样用?
super.loadUrl,你的super不是webView,可以这样用?
#2
mWebView = (WebView) findViewById(R.id.webview);
这一行出错,我是菜鸟,基本不懂java的,只是项目涉及到java但又出错了。代码是网上收集拼凑的,1楼能具体说说应该怎么修改吗?
这一行出错,我是菜鸟,基本不懂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
super.setIntegerProperty("splashscreen", R.drawable.bg);
super.loadUrl("file:///android_asset/www/index.html",4000);
这几个前面的super全部改成mWebView
#4
super这个是phonegap自己生成的,不能修改呀。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。
这几行是网上找的,我是想传值给javascript。
而且还没运行到这几行代码就已经出错了。
我把以下代码注释掉就没事了。
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代码:
<WebView
android:id="@+id/webview"
/>
这个是我自己加上去的,不知道这样可以不?
<?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里生成出来
如果是在eclipse下,安装好ADT插件的话,写好xml然后刷新下项目,新的id就会在R.java里生成出来
#11
WebView没定义宽高,这样子也能编译过吗?
#12
综合大家的帮助,我修改了一下代码:
我是想在JAVA里获取手机屏幕的分辨率,然后传值给js使用。编译是通过了,手机上也能运行这个apk,可是感觉就没有调用js的test(),问题是出在哪里呢?
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)方法
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一下,这样三步下来,就能搞定你的问题了。