Causés par: android.vue.InflateException: Binaire dans le fichier XML de la ligne #11: Erreur de gonflage de classe fragment
Je suis en train de construire une application avec des fragments, qui sont au niveau débutant et je n'ai pas de solides connaissances ou de l'expérience en la matière.
Je veux WebViewFragment être visible lorsque l'application démarre, plus tard avant l'ajout d'un contrôle ListView côté.
Comme il est maintenant, l'application se bloque dès que je démarre sur le téléphone. J'ai coller le journal des erreurs ci-dessous.
ERREUR
01-01 18:14:24.223: E/AndroidRuntime(25050): FATAL EXCEPTION: main
01-01 18:14:24.223: E/AndroidRuntime(25050): Process: com.raj.fragment, PID: 25050
01-01 18:14:24.223: E/AndroidRuntime(25050): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.raj.fragment/com.raj.fragment.MainActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2248)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread.access$800(ActivityThread.java:138)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.os.Handler.dispatchMessage(Handler.java:102)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.os.Looper.loop(Looper.java:136)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread.main(ActivityThread.java:5050)
01-01 18:14:24.223: E/AndroidRuntime(25050): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 18:14:24.223: E/AndroidRuntime(25050): at java.lang.reflect.Method.invoke(Method.java:515)
01-01 18:14:24.223: E/AndroidRuntime(25050): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1264)
01-01 18:14:24.223: E/AndroidRuntime(25050): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1080)
01-01 18:14:24.223: E/AndroidRuntime(25050): at dalvik.system.NativeStart.main(Native Method)
01-01 18:14:24.223: E/AndroidRuntime(25050): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
01-01 18:14:24.223: E/AndroidRuntime(25050): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Activity.setContentView(Activity.java:1929)
01-01 18:14:24.223: E/AndroidRuntime(25050): at com.raj.fragment.MainActivity.onCreate(MainActivity.java:11)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Activity.performCreate(Activity.java:5231)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
01-01 18:14:24.223: E/AndroidRuntime(25050): ... 11 more
01-01 18:14:24.223: E/AndroidRuntime(25050): Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.raj.fragment.WebViewFragment that is not a Fragment
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Fragment.instantiate(Fragment.java:585)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Fragment.instantiate(Fragment.java:561)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.app.Activity.onCreateView(Activity.java:4778)
01-01 18:14:24.223: E/AndroidRuntime(25050): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
01-01 18:14:24.223: E/AndroidRuntime(25050): ... 21 more
01-01 18:14:24.223: E/AndroidRuntime(25050): Caused by: java.lang.ClassCastException
01-01 18:14:24.223: E/AndroidRuntime(25050): ... 25 more
MainActivity
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
WebViewFragment
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@SuppressLint("SetJavaScriptEnabled")
public class WebViewFragment extends Fragment {
private WebView mWebView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.webview, container, false);
mWebView = (WebView)view.findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("http://www.google.com/about/");
mWebView.setWebViewClient(new WebClient());
return view;
}
public class WebClient extends WebViewClient{
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{
webview.loadUrl(url);
return true;
}
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<fragment
android:name="com.raj.fragment.WebViewFragment"
android:id="@+id/webview"
android:layout_weight="1"
android:layout_height="match_parent"/>
</LinearLayout>
OriginalL'auteur user2734182 | 2014-01-01
Vous devez vous connecter pour publier un commentaire.
Le journal dit tout
Changement de
Parce que vous avez
Votre
Fragment
est hébergé par laMainActivity
.Aussi, vous pouvez avoir
class="com.raj.fragment.WebViewFragment"
ouandroid:name="com.raj.fragment.WebViewFragment"
. Pas besoin d'avoir les deux.Également ajouter @Override annotation
Edit:
c'est juste une annotation indiquant un que ses une méthode surchargée. Il devrait fonctionner sans elle, si
"Causé par: java.lang.ClassCastException: com.raj.le fragment.MainActivity ne peut pas être lancé pour android.app.L'activité"
post mise à jour de votre code d'activité code et le fragment de code avec les instructions d'importation
Maintenant ça fonctionne =) Ou oui, l'application se lance mais est vide / blanc: S
OriginalL'auteur Raghunandan
La WebViewFragment ne devrait pas être un FragmentActivity. Depuis c'est un fragment, il doit hériter de Fragment.
OriginalL'auteur hakanostrom