Problem bei WebView in Eclipse

  • 8 Antworten
  • Letztes Antwortdatum
P

phantom0321

Neues Mitglied
0
Hallo,
sorry, dass ich hier diese Frage stelle, aber ich bin absoluter Neuling in diesem Gebiet. Ich habe mal auf der Basis von Youtube Tutorials und anderen Einträgen in diesem Forum mal eine kleine App programmiert. Ich nehme am Schülerprojekt "Formel 1 in der Schule" teil und in der App sollte man auf verschiedene Links klicken können, um beispielsweise auf unsere Website zu gelangen. Ich habe schon einmal mit einem Link zur Facebook-Page mit Webview angefangen, es läuft auf meinem Tablet (ASUS Fonepad), doch sobald ich auf den Button klicke, stürzt es ab. Hier die Activity-Main.xml:
Code:
<RelativeLayout 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"
    android:background="@drawable/alu"
    tools:context=".MainActivity" >

    
    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/imageButton1"
        android:layout_marginRight="16dp"
        android:layout_marginTop="21dp"
        android:src="@drawable/facebooklogo"
        android:onClick="facebookklick" 
        android:contentDescription="@string/description"/>

</RelativeLayout>

Aus den Fehlermeldungen werde ich auch nicht ganz schlau:
Code:
03-01 13:47:12.784: D/AndroidRuntime(2806): Shutting down VM
03-01 13:47:12.784: W/dalvikvm(2806): threadid=1: thread exiting with uncaught exception (group=0x418d37d0)
03-01 13:47:12.924: E/AndroidRuntime(2806): FATAL EXCEPTION: main
03-01 13:47:12.924: E/AndroidRuntime(2806): java.lang.IllegalStateException: Could not execute method of the activity
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.View$1.onClick(View.java:3624)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.View.performClick(View.java:4117)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.View$PerformClick.run(View.java:17041)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.os.Handler.handleCallback(Handler.java:615)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.os.Handler.dispatchMessage(Handler.java:92)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.os.Looper.loop(Looper.java:137)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.app.ActivityThread.main(ActivityThread.java:4747)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at java.lang.reflect.Method.invokeNative(Native Method)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at java.lang.reflect.Method.invoke(Method.java:511)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at dalvik.system.NativeStart.main(Native Method)
03-01 13:47:12.924: E/AndroidRuntime(2806): Caused by: java.lang.reflect.InvocationTargetException
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at java.lang.reflect.Method.invokeNative(Native Method)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at java.lang.reflect.Method.invoke(Method.java:511)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.View$1.onClick(View.java:3619)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	... 11 more
03-01 13:47:12.924: E/AndroidRuntime(2806): Caused by: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5478)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5614)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.widget.FrameLayout$LayoutParams.<init>(FrameLayout.java:610)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:554)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.widget.FrameLayout.generateLayoutParams(FrameLayout.java:56)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:477)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:257)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at android.app.Activity.setContentView(Activity.java:1867)
03-01 13:47:12.924: E/AndroidRuntime(2806): 	at com.example.phantomteam.MainActivity.facebookklick(MainActivity.java:38)

Ich hoffe, dass jemand mir schnell weiterhelfen kann.
Danke schon mal im Voraus, phantom0321
 
facebookklick

gibt es denn diese Methode in deiner Activity ????
 
Ja, hier ist die Activity:

Code:
package com.example.phantomteam;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.webkit.WebView;

public class MainActivity extends Activity {
	
	private WebView facebook;

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

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	public void wagenklick (View view) {
		setContentView(R.layout.wagen);
		
	
	
	
		facebook = (WebView) findViewById(R.id.webview);
		facebook.loadUrl("http://www.facebook.com/phanpage");
		
	}
	
	public void facebookklick (View view) {
		setContentView(R.layout.facebook);
	}
	
}
 
Da ist der Fehler:
java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.

Wenn du den Stacktrace genau anguckst siehst du, dass er in die facebookklick methode rein geht und versucht das Layout zu laden.
Aber in deinem layout
R.layout.facebook
stimmt was nicht.
 
Ok, danke schonmal für die schnellen Antworten, aber leider kann ich mit den Fachbegriffen noch nicht viel anfangen. Was genau muss ich machen?
 
Du müsstest doch ein layout facebook.xml haben da drin stimmt was nicht.
also entweder findest du den fehler alleine oder du postet den inhalt von der datei hier
 
Achso, ja hier ist die Facebook.xml:

Code:
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    

</WebView>
 
gut dann lesen wir nochmal die Fehlermeldung:
You must supply a layout_width attribute.

Und was sehen wir in der Layout XML was fehlt?
richtig ein layout_width attribute ;)

Füg das mal hinzu und probiers nochmal.
 
Okay, danke für die Antwort, jetzt lässt es sich öffnen, aber der Bildschirm ist oben zu einem Drittel weiß und der Rest schwarz. Was habe ich jetzt falsch gemacht?
 
Zurück
Oben Unten