2015-02-02 4 views
-1

У меня есть проект Android Studio, этот проект должен иметь локальные HTML-файлы. Я не знаю, насколько я понимаю структуру файлов, или проблема другая.Локальный HTML не открывается на Android

Файл не открыт. Только показывать эту ошибку:

enter image description here

Структура файла:

enter image description here

Код:

<WebView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/webViewRevistas" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 



public class revistas extends ActionBarActivity { 

private WebView webViewRevistas; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_revistas); 

    WebView mWebView = (WebView) findViewById(R.id.webViewRevistas); 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("file:///assets/index.html"); 
    mWebView.setWebViewClient(new WebViewClient() { 

     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    }); 
} 
+0

Вы недавно добавили этот файл? Затем вы должны удалить свое приложение и снова установить новый построенный –

+0

Да, я добавил недавно. Я удалил это приложение с моего устройства и снова попробовал. Аналогичная ошибка :( –

+0

Также измените файл: /// assets/'to' file: /// android_asset/' –

ответ

2

путь неправильно.

Это не

file:///assets/... 

но:

file:///android_asset/... 
+0

Итак, должно быть так:' 'file: ///android_asset/assets/index.html« '? Но я создал каталог' assets', который не является значением по умолчанию. –

+1

Это как 'файл: /// android_asset/index.html' –

+1

Как указывал @MD, это просто' файл: /// android_asset/index.html'. Не имеет значения, что ** вы ** создали . Просто замените 'assets' на' android_asset' в вашем пути здесь: 'mWebView.loadUrl (" file: ///android_asset/index.html ");'. –

0

, чтобы исправить это создать папку в «основной» под названием «android_asset», а также создать другую папку под названием «активы» и разместить HTML файл в активах и вызовите с помощью этого mWebView.loadUrl ("file: /// android_asset/YOUR HTML FILE.html");

У меня была такая же проблема, и даже если я не звоню mWebView.loadUrl ("file: /// assets/YOUR HTML FILE.html"); все еще некоторые из них работают. который я нахожу странным, потому что именно там, где находится html!

Возможно, вам придется дублировать свои htmls для старых версий Android и поместить их в android_asset.

Итак, ваши папки должны выглядеть так: main/android_assets/assets/YOUR HTML.html и main/assets/и вызывать с mWebView.loadUrl ("file: /// android_asset/YOUR HTML FILE.html");

Heres, как выглядит мой oncreate.

частный WebView mWebView;

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mWebView = (WebView) findViewById(R.id.activity_main_webview); 
    // Enable Javascript 
    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mWebView.loadUrl("file:///android_asset/index.html"); 

} 
Смежные вопросы