На эмуляторе Android, пытаясь загрузить webview, я получаю net:: err_cache_miss
Я попробовал пример, показанный на веб-сайте разработчиков Android, чтобы показать веб-страницу в компоненте WebView без успеха. Эмулятор показывает следующую ошибку:
Веб-страница недоступна на веб-странице http://developer.android.comне может быть загружен, потому что: net:: ERR_CHACHE_MISS
Я пока не нашел решения, даже посмотрев другие темы в Интернете. Я также пробовал разные ссылки.
Я не знаю, может ли быть полезным в понимании причины этой ошибки, но эмулятор Nexus 4 API 21 с Android 5.0.1. Я использую Android Studio 1.0.
Код тот же пример:
In MainActivity.java:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://developer.android.com/");
}
В AndroidManifest:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-permission android:name="android.permission.INTERNET" />
.....
И в представлении я добавил тот же код примера
Пример:
http://developer.android.com/guide/webapps/webview.html
Ответы
Ответ 1
Именно, это произошло со мной один раз, и решение должно было поставить следующую строку: <uses-permission android:name="android.permission.INTERNET"/>
перед тегом <application
в файле manifest.xml.
Либо эта строка отсутствует, либо она неуместна (например, в конце тега </manifest>
.
Ответ 2
Если кто-то еще сталкивается с этой проблемой, и, поскольку ответа нет, я подумал, что я его предоставил.
Для меня это оказался просто порядок, в котором теги находились в файле манифеста. Элемент пользовательского разрешения должен появиться перед элементом приложения. Я просто положил его прямо под элемент манифеста наверху, и это, казалось, сделало трюк для меня.
Ответ 3
У меня была такая же ошибка, и я исправил с помощью
внутри действия, например:
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<uses-permission android:name="android.permission.INTERNET" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Потому что я строю внутри основной деятельности webView....
Надеюсь, это поможет кому-то другому.
Ответ 4
Собственно, место бирки имеет значение.
Например, это не работает:
<activity android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<uses-permission android:name="android.permission.INTERNET" />
</activity>
Но ниже код работает отлично.
<activity android:name=".MainActivity"
android:label="@string/app_name" >
<uses-permission android:name="android.permission.INTERNET" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Ответ 5
Просто включите эти разрешения в свой AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Ответ 6
Вставьте следующее вне тега приложения в AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.android.permission.ACCESS_NETWORK_STATE"/>