2013-01-06 2 views
0

J'ai un fichier html qui s'exécute parfaitement dans l'émulateur mais ne fonctionne pas dans le périphérique Android déployé.Erreur WebView dans le périphérique Android déployé

Ceci est mon code XML de la mise en page qui a le WebView:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:background="@drawable/white_paper_complete"> 

<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/wv_basicinfo" android:layout_gravity="left|center_vertical"/> 
<TextView 
     android:layout_width="209dp" 
     android:layout_height="86dp" 
     android:text="  BASIC INFORMATION" 
     android:id="@+id/textView" android:textColor="@android:color/black" android:textSize="30dp" 
     android:layout_gravity="center"/> 
<ImageView 
     android:layout_width="42dp" 
     android:layout_height="45dp" 
     android:id="@+id/imageView" android:layout_gravity="center" android:background="@drawable/loader"/> 
</LinearLayout> 

Ceci est mon code dans sa catégorie:

package com.example.ITax; 

import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebView; 
import android.widget.Button; 

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 


public class OpenBasicInfo extends MyActivity 
{ 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.basic_info); 

    WebView wv_basic_info = (WebView) findViewById(R.id.wv_basicinfo); 
    wv_basic_info.loadData(readTextFromResource(R.raw.basicinfo), "html", "utf-8"); 
} 

private String readTextFromResource(int resourceID) 
{ 
    InputStream raw = getResources().openRawResource(resourceID); 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    int i; 

    try 
    { 
     i = raw.read(); 
     while(i != -1) 
     { 
      stream.write(i); 
      i = raw.read() ; 
     } 
    } 

    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 

    return stream.toString(); 
} 
} 

Mon fichier html qui se trouve dans res> raw > basicinfo.html

+1

Vous vous connectez à LogCat? – asgoth

Répondre

0
wv_basic_info.loadData(readTextFromResource(R.raw.basicinfo), "text/html; charset=UTF-8", null); 

Cela fonctionne parfaitement, en particulier sur Android 4.0, qui semble ignorer l'encodage de caractères insi de HTML.

Testé sur 2.3 et 4.0.3.

+0

J'ai déjà essayé, mais ne fonctionne toujours pas sur l'appareil :( –

0

Le rendu GPU est-il activé? WebView est pas pris en charge lorsque le rendu GPU est activé (cela peut être juste pour l'émulateur) http://developer.android.com/tools/devices/emulator.html#acceleration

Remarque: Toutes les applications sont compatibles avec l'accélération matérielle graphique. En particulier, l'application Navigateur et les applications utilisant le composant WebView ne sont pas compatibles avec l'accélération graphique.

+0

hmm l'application fonctionne parfaitement dans l'émulateur, mais pas sur l'appareil .. –