Simple App - Java Anfänger scheitert

  • 8 Antworten
  • Letztes Antwortdatum
M

M4rc

Neues Mitglied
0
Hallo Androidgemeinde,

ich bin selbst PHP und Webprogrammierer, hatte mit Java ansich aber noch nie etwas zutun. Ich habe selbst javascript oft gerne umgangen. Nun bin ich auf eure Hilfe angewiesen. Ich will/muss eine kleine App schreiben. Nichts großartiges und in PHP wäre das Problemlos in allerhöchstens 10 Minuten umgesetzt (abgesehen von dem Dienst :D).

Da ich selbst früher sehr oft in Foren supportet habe, weiss ich wie man Probleme etc beschreiben sollte, sodass ihr einfacher helfen könnt:
erklarung.jpg

Dieses Bild soll die App ersteinmal erklären. Wie bereits zu sehen ist, gibt es ein simples Eingabeformular, welches durch einen Button abgeschickt werden soll. Die Variable aus der Eingabe soll einfach in einer URL im Webview von der zweiten XML-Datei angezeigt werden. Sodass also die URL abhängig von der Eingabe ist. Ich denke, das lässt sich sicher leicht regeln, jedoch bin ich wohl schon daran gescheitert, weil ich keine Ahnung habe wie ich die Variable importieren und wieder ausgeben kann :confused2:

Selbstverständlich habe ich bereits selbst versucht diese App zu schreiben. Jedoch hakt es ständig und die englischen Erklärungen bringen mich auch kein Stück weiter. Hier meine jetzigen Scripts:

Webview XML: "layout_dvp.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_width="fill_parent"
    android:layout_height="fill_parent"
    
/>

Eingabe XML: (second.xml)
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edit_message"
        android:layout_width="246dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/message_name" />

    <Button
        android:id="@+id/button_send"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:text="@string/button_login"
        android:onClick="Loginbutton" />

</LinearLayout>

Manifest:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="m4rc.dvpplus"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="22"/>
	<uses-permission android:name="android.permission.INTERNET" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="m4rc.dvpplus.DVP"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Bisheriger Javacode: (DVP.java)
Code:
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.View;
import android.webkit.WebView;

@SuppressLint("SetJavaScriptEnabled") public class DVP extends Activity {

	private WebView mWebView;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        return;
    }
    
    public void Loginbutton (View view) {
    	setContentView(R.layout.layout_dvp);
        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://www.m4rc.de/jf");
    }
    
        
}


Und strings.xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">DVPPlus</string>
    <string name="action_settings">Settings</string>
    <string name="message_name">DVP-ID</string>
	<string name="button_login">Einloggen</string>
</resources>


Den Dienst, der auf dem Bild beschrieben ist, habe ich noch garnicht angefangen. Ich habe das Javaprinzip auch noch nicht komplett verstanden: Lese mich jetzt aber noch weiterhin ein....

Was könnt ihr mir empfehlen, um eine Zahl zwischen einem Webserver und einer App auszutauschen? Nicht zu vergessen, die Zahl bzw Variable darf natürlich nicht sicher resetten, wenn die App nichtmehr ausgeführt wird....

Ich dachte bisher an eine simple html seite, wo die App möglicherweise den Inhalt einfach auslesen und in eine Variable speichern könnte... Die Zahl ansich ist nicht geheim und darf ruhig lesbar sein. Ich dachte zuerst an MySQL, aber als ich die Codes dazu in Java gesehen habe, war ich komplett am durchdrehen... Ich finde einfach keinen Paralellen zu den Sprachen die ich behersche. Diese App wird wahrscheinlich vorläufig auch meine einzige bleiben. Später werde ich mich sicherlich damit nocheinmal beschäftigen, aber derzeit stehe ich etwas unter Zeitdruck wegen der App. Wer kann helfen?

Es wäre nett wenn ihr einfach mal ein paar Codeschnipsel zeigen und kurz erklären könntet die mir weiterhelfen. Sinnlose verlinkungen zu Webseiten finde ich Zwecklos. In der Zeit inder ihr für mich googelt (auch wenn ihr das sehr nett mein), wäre es mir viel lieber, wenn ihr mir eine kurze Inofmration gebt, warum ich das brauche! Sowas wie "if" ist mir auch noch nicht über den Weg gelaufen.... Werde ich wohl für den Dienst brauchen oder?




Mit freundlichen Grüßen,
Marc
 
Zuletzt bearbeitet von einem Moderator:
Kurze Frage: "sowas wie "if" ist dir noch nicht über den weg gelaufen, aber du bist PHP programmierer?
if gibts doch genauso in PHP, es hat da sogar die gleiche Syntax.

Ich hab gerade nicht so viel Zeit daher nur kurze Hinweise wonach du suchen kannst um weiter zu kommen:
OnClickListener um überhaupt eine funktion an den Button hängen zu können.

EditText kannst du einfach auslesen mit editText.getText().toString
Das kannst du dann einfach in die URL die du aufrufst anhängen
loadUrl("www.url.de/" + editText.getText().toString())

wobei du Edittext genauso vorher mit findViewById holen musst.
Bevor du das 2. mal setContentView machst, daher solltest du den Inhalt auch zwischenspeichern.
 
amfa schrieb:
Kurze Frage: "sowas wie "if" ist dir noch nicht über den weg gelaufen, aber du bist PHP programmierer?
if gibts doch genauso in PHP, es hat da sogar die gleiche Syntax.

Ich hab gerade nicht so viel Zeit daher nur kurze Hinweise wonach du suchen kannst um weiter zu kommen:
OnClickListener um überhaupt eine funktion an den Button hängen zu können.

EditText kannst du einfach auslesen mit editText.getText().toString
Das kannst du dann einfach in die URL die du aufrufst anhängen
loadUrl("www.url.de/" + editText.getText().toString())

wobei du Edittext genauso vorher mit findViewById holen musst.
Bevor du das 2. mal setContentView machst, daher solltest du den Inhalt auch zwischenspeichern.

WOW!! Das ist doch schonmal etwas!! xD du hast da was falsch verstanden, in JAVA ist mit if noch nicht über den weg gelaufen :D In PHP wäre ein Programm ohne IF undenkbar :D Danke! Werd mich nun mal versuchen einzulesen!
 
Vielleicht liegt es an mir aber ich versteh trotz der eigentlich anschaulichen Darstellung die Idee nicht ganz... :)
Also, du möchtest ein Eingabefeld haben, wo eine URL eingegeben wird und bei Button Click im Web-View aufgerufen wird ?
Gleichzeitig soll alle 2h geprüft werden ob sich eine in einer DB gespeicherte Zahl vergrößert hat, wenn ja dann erfolgt eine Benachrichtigung und der alte Wert wird durch den Neuen ersetzt ?
Habe ich das soweit richtig verstanden ?
 
AppDos schrieb:
Vielleicht liegt es an mir aber ich versteh trotz der eigentlich anschaulichen Darstellung die Idee nicht ganz... :)
Also, du möchtest ein Eingabefeld haben, wo eine URL eingegeben wird und bei Button Click im Web-View aufgerufen wird ?
Gleichzeitig soll alle 2h geprüft werden ob sich eine in einer DB gespeicherte Zahl vergrößert hat, wenn ja dann erfolgt eine Benachrichtigung und der alte Wert wird durch den Neuen ersetzt ?
Habe ich das soweit richtig verstanden ?

Im groben ja!
1. Man gibt keine URL ein, sondern ein "Codewort" welches in der URL eingesetzt wird! z.B. "essen". Dann wird man auf: http://m4rc.de/index.php?p=essen umgeleitet.

2. Benachrichtigung: Ja, der alte wird durch den neuen ersetzt. ABER wenn das geschieht, soll der User benachrichtigt werden. Also so eine Benachrichtigung, welche man z.B. sieht, wenn man eine Whatsapp nachricht bekommt. Also soll praktisch eine Art Funktion ausgeführt werden, die diese Nachricht anzeigt. Die Nachricht is ganz simpel und immer die selbe!


Insgesammt ist die App eigentlich sehr simpel aufgebaut. Durch eure Hilfe komme ich weiter, vielen Dank! Auch wenn hier nur Stichworte fallen, so bekomme ich langsam eine Übersicht wie die Theorie mit Java aussieht. Denn Java unterscheidet sich vom Aufbau doch schon stark von anderen Sprachen die ich kenne. Aber Java ist zur heutigen Zeit ja leider unumgänglich.

Dennoch gibt es noch viele Unklarheiten. Ich lerne täglich ein wenig dazu, aber auch viel unnütze Dinge die ich wohl nicht brauche. Ich danke jeder informativen Antwort hier!

mit freundlichen Grüßen,
Marc
 
Eigentlich unterscheidet sich Java nicht wesentlich von anderen objektorientierten Sprachen. Was die Syntax und Logik angeht verhält es sich "ähnlich" wie z.B. C++
Eine vielleicht etwas einfachere, und mMn genauso gute Lektüre wäre Java von Kopf bis Fuß (http://www.amazon.de/Java-von-Kopf-bis-Fu%C3%9F/dp/3897214482)

So mir war etwas langweilig also hab ich mich mal dran gesetzt, hoffe du verstehst das soweit, wenn du fragen hast frag einfach ;)

Code:
package com.example.dvp;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;

public class DVP extends Activity {

	private EditText editUrl;
	private WebView webView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_dvp);
        createService();
        return;
    }
    
    public void Loginbutton (View view) {
    	//Speichert die Eingabe in 'id'
        editUrl = (EditText) findViewById(R.id.edit_message);
        String id = editUrl.getText().toString();
        webView = new WebView(this);
	webView.setWebViewClient(new WebViewClient());
	//Fügt 'id' am Ende der Url ein
	webView.loadUrl("http://m4rc.de/index.php?p=" + id);
	setContentView(webView);
    }
    
    private void createService() {
    	Calendar cal = Calendar.getInstance();
        cal.add(Calendar.SECOND, 10);
        //Erstellt den Service für die Abfrage und Benachrichtigung(Service läuft im Hintergrund, auch wenn die App geschlossen wird)
        Intent intent = new Intent(this, DVPService.class);
        PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);
        //Startet den Service alle 2h
        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_HOUR * 2, pintent);
    }
}

Code:
package com.example.dvp;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;

public class DVPService extends Service {
	
	//Speicherschlüssel für den Wert
	private static final String VALUE_KEY = "com.example.dvp.value";
	
	@Override
    public void onCreate() {
		super.onCreate();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		
		//Lädt den gespeicherten Wert
		SharedPreferences prefs = getSharedPreferences("com.example.dvp", Context.MODE_PRIVATE);
		int savedValue = prefs.getInt(VALUE_KEY, 0);
		//Lädt den Wert vom Server etc.
		int serverValue = getServerValue();
		
		if(serverValue > savedValue) {
			notifyUser(savedValue, serverValue);
		}
		prefs.edit().putInt(VALUE_KEY, serverValue).commit();
		return Service.START_STICKY;
	}
	
	private int getServerValue() {
		//todo
		return 4;
	}
	
	private void notifyUser(int oldValue, int newValue) {
		Intent intent = new Intent(this, DVP.class);
		PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
		//Erstellt die Benachrichtigung, beim Click öffnet sich die App
		Notification n = new Notification.Builder(this).setContentTitle("Wert hat sich erhöht!").setContentText("Von " + oldValue + " auf " + newValue).setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent).setAutoCancel(true).build();
		NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		notificationManager.notify(0, n);
	}

	@Override
	public IBinder onBind(Intent arg0) {
		return null;
	}

}

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dvp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.dvp.DVP"
            android:launchMode="singleInstance"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name="com.example.dvp.DVPService"
            android:process=":dvp_process"
            android:icon="@drawable/ic_launcher"
            android:label="@string/service_name" >
        </service>
    </application>

</manifest>

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edit_message"
        android:layout_width="246dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/message_name" />

    <Button
        android:id="@+id/button_send"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:text="@string/button_login"
        android:onClick="Loginbutton" />

</LinearLayout>

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

    <string name="app_name">DVP</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="message_name">DVP_ID</string>
    <string name="button_login">Einloggen</string>
    <string name="service_name">DVP Service</string>

</resources>

Wie du jetzt den Server abfragst ist deine Sache, aber da solltest du schon was geeignetes finden ^^
Den Code kannst du nach belieben ändern, der soll dir nur als Vorlage dienen, und zum lernen ;)
 
Zuletzt bearbeitet:
AppDos schrieb:
Eigentlich unterscheidet sich Java nicht wesentlich von anderen objektorientierten Sprachen. Was die Syntax und Logik angeht verhält es sich "ähnlich" wie z.B. C++
Eine vielleicht etwas einfachere, und mMn genauso gute Lektüre wäre Java von Kopf bis Fuß (Java von Kopf bis Fuß: Amazon.de: Kathy Sierra, Bert Bates, Lars Schulten, Elke Buchholz: Bücher)

So mir war etwas langweilig also hab ich mich mal dran gesetzt, hoffe du verstehst das soweit, wenn du fragen hast frag einfach ;)

Code:
package com.example.dvp;

import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;

public class DVP extends Activity {

	private EditText editUrl;
	private WebView webView;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_dvp);
        createService();
        return;
    }
    
    public void Loginbutton (View view) {
    	//Speichert die Eingabe in 'id'
        editUrl = (EditText) findViewById(R.id.edit_message);
        String id = editUrl.getText().toString();
        webView = new WebView(this);
	webView.setWebViewClient(new WebViewClient());
	//Fügt 'id' am Ende der Url ein
	webView.loadUrl("http://m4rc.de/index.php?p=" + id);
	setContentView(webView);
    }
    
    private void createService() {
    	Calendar cal = Calendar.getInstance();
        cal.add(Calendar.SECOND, 10);
        //Erstellt den Service für die Abfrage und Benachrichtigung(Service läuft im Hintergrund, auch wenn die App geschlossen wird)
        Intent intent = new Intent(this, DVPService.class);
        PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0);
        //Startet den Service alle 2h
        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_HOUR * 2, pintent);
    }
}

Code:
package com.example.dvp;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;

public class DVPService extends Service {
	
	//Speicherschlüssel für den Wert
	private static final String VALUE_KEY = "com.example.dvp.value";
	
	@Override
    public void onCreate() {
		super.onCreate();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		
		//Lädt den gespeicherten Wert
		SharedPreferences prefs = getSharedPreferences("com.example.dvp", Context.MODE_PRIVATE);
		int savedValue = prefs.getInt(VALUE_KEY, 0);
		//Lädt den Wert vom Server etc.
		int serverValue = getServerValue();
		
		if(serverValue > savedValue) {
			notifyUser(savedValue, serverValue);
		}
		prefs.edit().putInt(VALUE_KEY, serverValue).commit();
		return Service.START_STICKY;
	}
	
	private int getServerValue() {
		//todo
		return 4;
	}
	
	private void notifyUser(int oldValue, int newValue) {
		Intent intent = new Intent(this, DVP.class);
		PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
		//Erstellt die Benachrichtigung, beim Click öffnet sich die App
		Notification n = new Notification.Builder(this).setContentTitle("Wert hat sich erhöht!").setContentText("Von " + oldValue + " auf " + newValue).setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent).setAutoCancel(true).build();
		NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		notificationManager.notify(0, n);
	}

	@Override
	public IBinder onBind(Intent arg0) {
		return null;
	}

}

Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.dvp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.dvp.DVP"
            android:launchMode="singleInstance"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service
            android:name="com.example.dvp.DVPService"
            android:process=":dvp_process"
            android:icon="@drawable/ic_launcher"
            android:label="@string/service_name" >
        </service>
    </application>

</manifest>

Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edit_message"
        android:layout_width="246dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/message_name" />

    <Button
        android:id="@+id/button_send"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:text="@string/button_login"
        android:onClick="Loginbutton" />

</LinearLayout>

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

    <string name="app_name">DVP</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="message_name">DVP_ID</string>
    <string name="button_login">Einloggen</string>
    <string name="service_name">DVP Service</string>

</resources>

Wie du jetzt den Server abfragst ist deine Sache, aber da solltest du schon was geeignetes finden ^^
Den Code kannst du nach belieben ändern, der soll dir nur als Vorlage dienen, und zum lernen ;)

Erstmal ein ganz dickes Dankeschön! Sehr nett, extra für mich die App größtenteils anzufertigen. Doch leider gibt es nun ein Problem mitdem ich garnicht gerechnet habe:

Ich habe alles brav übernommen und alle Fehler "beseitigt". Dabei habe ich den Code nicht verändert. Nur angepasst. Nur die APP kann weder auf einem Smartphone, noch im Emulator ausgeführt werden. Auch nicht in APK19. Egal ob Googles oder Android.... Und der Fehler ist nicht sehr aussagekräftig: "Leider wurde DVP beendet." Bzw das Ganze auf englisch.....


Bin grad ziemlich verwundert, weil Fehler doch in Eclipse angezeigt werden sollten oder? Aber da ist weder ein rotes Ausrufezeichen, noch ein Warndreieck... Alles scheint okay!


EDIT:
Mir ist gerade noch eingefallen, dass es noch "LOGS" gibt... Mir sagen die aber noch wenig über den Fehler...
<SPOILER>12-22 12:11:02.055: D/AndroidRuntime(376): Shutting down VM
12-22 12:11:02.055: W/dalvikvm(376): threadid=1: thread exiting with uncaught exception (group=0x40014760)
12-22 12:11:02.185: E/AndroidRuntime(376): FATAL EXCEPTION: main
12-22 12:11:02.185: E/AndroidRuntime(376): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.dvp/com.example.dvp.DVP}: java.lang.ClassNotFoundException: com.example.dvp.DVP in loader dalvik.system.PathClassLoader[/data/app/com.example.dvp-2.apk]
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1672)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread.access$1500(ActivityThread.java:122)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.os.Handler.dispatchMessage(Handler.java:99)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.os.Looper.loop(Looper.java:132)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread.main(ActivityThread.java:4025)
12-22 12:11:02.185: E/AndroidRuntime(376): at java.lang.reflect.Method.invokeNative(Native Method)
12-22 12:11:02.185: E/AndroidRuntime(376): at java.lang.reflect.Method.invoke(Method.java:491)
12-22 12:11:02.185: E/AndroidRuntime(376): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
12-22 12:11:02.185: E/AndroidRuntime(376): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
12-22 12:11:02.185: E/AndroidRuntime(376): at dalvik.system.NativeStart.main(Native Method)
12-22 12:11:02.185: E/AndroidRuntime(376): Caused by: java.lang.ClassNotFoundException: com.example.dvp.DVP in loader dalvik.system.PathClassLoader[/data/app/com.example.dvp-2.apk]
12-22 12:11:02.185: E/AndroidRuntime(376): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:251)
12-22 12:11:02.185: E/AndroidRuntime(376): at java.lang.ClassLoader.loadClass(ClassLoader.java:540)
12-22 12:11:02.185: E/AndroidRuntime(376): at java.lang.ClassLoader.loadClass(ClassLoader.java:500)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.Instrumentation.newActivity(Instrumentation.java:1022)
12-22 12:11:02.185: E/AndroidRuntime(376): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1663)
12-22 12:11:02.185: E/AndroidRuntime(376): ... 11 more
</SPOILER>
 
Seltsam, bei mir läuft die App einwandfrei(Nexus 5), hast du vielleicht irgendetwas umbenannt ? DVP-2 oder so ?
Übrigens Eclipse kann dir nur Syntax- oder Logikfehler zeigen, so ne art Pre-Compiler, aber wenn ein Fehler während der Laufzeit auftritt kann dir das natürlich nur die VM sagen ^^
Wie gesagt, wenn du dich wirklich mit Java beschäftigen möchtest, dann kann ich dir nur empfehlen eins der vorgeschlagenen Bücher zu lesen, da steht das z.B. alles drin!
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
598
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten