您好我尝试将给定的HTML文件加载到WiebView中,就像这样:
webView.loadUrl("http://192.168.0.50/www/TestWebSite/medias/en_fileTest.htm");
我收到错误:
"the Web page at http://192.168.0.50/www/TestWebSite/medias/en_fileTest.htm might be temporarly down ...."
我无法理解为什么我在浏览器中加载了这个确切的网址,它会正确显示。
我也试图取代" http"通过" file"没有成功。
为什么webView.loadUrl()找不到它?
编辑18_07: 应用程序始终在genymotion 2.2.2上运行/调试。
我尝试创建一个名称来访问我的服务器,而不是通过本地ip访问它。 我想知道ip是否会扰乱WebView。 现在,可以从caBBAlainB.synology.me访问运行Web服务器的NAS。 这并没有解决WebView问题但增加了一个新问题!一个噩梦。 我再也无法访问xml文件了! 该文件的读取方式如下:
String siteUrl = "http://caBBAlainB.synology.me/www/AvenArmand/";
String siteDescriptionFileUrl = siteUrl + "site_description.xml";
static class InitTask extends AsyncTask<Void, Integer, Integer> {
....
@Override
protected Integer doInBackground (Void... arg0) {
URL url = null;
BufferedInputStream buf;
ArrayList<Language> languages = null;
try {
url = new URL(site.getSiteDescriptionFileUrl());
// So it returns "http://caBBAlainB.synology.me/www/AvenArmand/site_description.xml"
// Création d'une connection HTTP à une URL
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream in = httpConnection.getInputStream();
int error = 0;
if ((error = processStream(in)) != 1) {
//Process error
}
}
} // catch what needed
}
}
当我尝试执行httpConnection.getResponseCode()时,我得到一个runtimeException !!
Thread[<11> AsyncTask #1 (Suspended (exception RunTime Exception
详情如下:
// Compiled from ThreadPoolExecutor.java (version 1.5 : 49.0, super bit)
public class java.util.concurrent.ThreadPoolExecutor extends java.util.concurrent.AbstractExecutorService {
// Method descriptor #17 (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)
// Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;)
// Stack: 3, Locals: 7
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit,
java.util.concurrent.BlockingQueue workQueue);
0 aload_0 [this]
1 invokespecial java.util.concurrent.AbstractExecutorService() [1]
4 new java.lang.RuntimeException [2]
7 dup
8 ldc <String "Stub!"> [3]
10 invokespecial java.lang.RuntimeException(java.lang.String) [4]
13 athrow
Line numbers:
[pc: 0, line: 29]
Local variable table:
[pc: 0, pc: 14] local: this index: 0 type: java.util.concurrent.ThreadPoolExecutor
[pc: 0, pc: 14] local: corePoolSize index: 1 type: int
[pc: 0, pc: 14] local: maximumPoolSize index: 2 type: int
[pc: 0, pc: 14] local: keepAliveTime index: 3 type: long
[pc: 0, pc: 14] local: unit index: 5 type: java.util.concurrent.TimeUnit
[pc: 0, pc: 14] local: workQueue index: 6 type: java.util.concurrent.BlockingQueue
Local variable type table:
[pc: 0, pc: 14] local: workQueue index: 6 type: java.util.concurrent.BlockingQueue<java.lang.Runnable>
etc..... Do I have to paste all the hundreds lines ??
所以我确切地说代码完全适用于192.168.0.50而不是caBBAlanB.synology.me!
请,我真的什么都不懂!
此致 阿兰
答案 0 :(得分:0)
如果您正在使用应用程序本身的本地html文件,请尝试将所有html文件放在assets
文件夹中。
之后使用如下所述
yourBrowser.loadUrl("file:///android_asset/index.html");
答案 1 :(得分:0)
<uses-permission android:name="android.permission.INTERNET" />
将其放入AndroidManifest.xml
答案 2 :(得分:0)
不幸的是,我真的不知道这个问题是如何解决的。它只是起作用。模拟器上可能存在临时问题...