Android findet die übergebene Activity nicht...?!?

  • Antworten:10
  • Bentwortet
Georg Buchta
  • Forum-Beiträge: 24

25.09.2011, 19:22:36 via Website

Hello

bei der Android-Entwicklung steck ich noch in den Kinderschuhen und schon hab ich meine
ersten Probleme :(

Kurz umrissen:

Das Trainingsprojekt besteht aus mehreren Packages welche dann die Java-Klassen enthalten
(als IDE verwende ich Eclipse mit ADT)

Auf der main.xml hab ich einfach nur ne Überschrift (damit ich weiß welche View ich aufgerufen habe - zur Orientierung)
und einen Button

1<Button
2 android:layout_width="fill_parent"
3 android:layout_height="wrap_content"
4 android:padding="15dip"
5 android:id="@+id/button_startseite_activities"
6 android:text="Activities"
7 android:onClick="goToActivities"
8/>

In der main.java (bei mir Startseite.java) welche zu dieser View gehört hab ich dann
eine Methode die reagiert wenn der Button geklickt wird

1public void goToActivities(final View view)
2{
3 startActivity(new Intent(this, Activities.class));
4}

Du Activity "Activities" ist im Manifest als Activity hinterlegt - somit kennt er sie ja




Beim Debugen in der AVD zeigt er mir brav die Startseite mit Überschrift und Button,
aber wenn ich dann auf den Button klicke, öffnet mir Eclipse einen Reiter "ActivityThread.perf..." und da steht drin "Source not found"



LogCat schreibt mir an:

ActivityManager
Starting activity: Intent { cmp=eu.androidtraining.dashboard/eu.androidtraining.activities.Activities }
WindowManager
No window to dispatch pointer action 0
WindowManager
No window to dispatch pointer action 1
ActivityManager
Launch timeout has expired, giving up wake lock!



Kann mir da wer helfen, weil ich keine Ahnung hab wo hier der Fehler liegt...


Liebe Grüße
georg

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

25.09.2011, 20:55:27 via Website

Zeig mal etwas mehr Code. Die relevanten Zeilen im Manifest von Startseite.java und Activities.java, die Packageheader der beiden, etc..

Antworten
Philip M.
  • Forum-Beiträge: 90

26.09.2011, 11:20:13 via Website

Wenn ich ohne Code raten müsste, würde ich sagen das die onCreate Methode der Activity "Activities" nicht den Methodenaufruf
1setContentView(R.layout.Activities);
enthält.

Bin aber selber noch Anfänger was das entwickeln auf Android-Basis angeht. :)

Mit ein bisschen mehr Code lässt sich dann aber genaueres sagen.

— geändert am 26.09.2011, 11:21:23

Antworten
Maximilian O
  • Forum-Beiträge: 990

26.09.2011, 13:41:18 via Website

Hey Georg, das liegt mit 99%iger Sicherheit daran, dass du die Activities.class nicht im Manifast definiert hast, also kann er sie auch nicht finden.
MfG Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

26.09.2011, 14:21:54 via Website

in seinem text steht aber, dass er sie bereits im manifest deklariert hat

swordiApps Blog - Website

Antworten
Maximilian O
  • Forum-Beiträge: 990

26.09.2011, 15:07:12 via Website

Markus Gu
in seinem text steht aber, dass er sie bereits im manifest deklariert hat
Danke, habe ich ganz übersehen :)
Müsste dann so aussehen:
1<activity android:name=".Activities"
2 android:label="@string/app_name"
3 android:theme="@android:style/Theme.NoTitleBar">
4 </activity>

MfG

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Georg Buchta
  • Forum-Beiträge: 24

26.09.2011, 18:39:50 via Website

@harald wilhelm

hier hast du den kompletten code meiner app.

Manifest:

1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="eu.androidtraining.dashboard"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="8" />
7
8 <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
9 <activity android:name=".Startseite"
10 android:label="@string/app_name">
11 <intent-filter>
12 <action android:name="android.intent.action.MAIN" />
13 <category android:name="android.intent.category.LAUNCHER" />
14 </intent-filter>
15 </activity>
16 <activity android:name="eu.androidtraining.activities.Activities"></activity>
17
18 </application>
19</manifest>


Startseite:

1package eu.androidtraining.dashboard;
2
3import eu.androidtraining.activities.Activities;
4import android.app.Activity;
5import android.content.Intent;
6import android.os.Bundle;
7import android.view.View;
8
9public class Startseite extends Activity {
10 /** Called when the activity is first created. */
11 @Override
12 public void onCreate(Bundle savedInstanceState) {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.main);
15 }
16
17 public void goToActivities(final View view)
18 {
19 startActivity(new Intent(this, Activities.class));
20 }
21}

Activities

1package eu.androidtraining.activities;
2
3import eu.androidtraining.dashboard.R;
4import android.app.Activity;
5import android.os.Bundle;
6
7public class Activities extends Activity
8{
9
10 @Override
11 protected void onCreate(Bundle savedInstanceState)
12 {
13 super.onCreate(savedInstanceState);
14 setContentView(R.layout.activities);
15 }
16
17
18}



@Phillip M.

ja das war auch meine erste Vermutung...bin dann immer wieder den code durchgegangen,
aber der aufruf ist drin uns sollte auch korrekt sein - nur geht´s halt nicht....

— geändert am 26.09.2011, 18:42:29

Antworten
Ansgar M
  • Forum-Beiträge: 1.544

26.09.2011, 20:15:59 via Website

Könntest du mehr vom Log des Fehlers posten? Meistens steckt da noch mehr hinter, was den genaueren Fehler verät..
Lg Ansgar

Antworten
Gelöschter Account
  • Forum-Beiträge: 294

26.09.2011, 20:28:16 via Website

Activity: Startseite, Package: eu.androidtraining.dashboard --> setContentView(R.layout.main);
Activity: Activities, Package: eu.androidtraining.activities; --> setContentView(R.layout.activities);

Ganz schön verwirrend. Zeig mal logcat.

Gruß
Harald

Antworten
Philip M.
  • Forum-Beiträge: 90

27.09.2011, 10:35:31 via Website

Liegt es vllt an dem Package in deiner manifest und dem Namen deiner Activity in der manifest?

Eventuell muss es so lauten:
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="eu.androidtraining"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="8" />
7
8 <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
9 <activity android:name=".Dashboard.Startseite"
10 android:label="@string/app_name">
11 <intent-filter>
12 <action android:name="android.intent.action.MAIN" />
13 <category android:name="android.intent.category.LAUNCHER" />
14 </intent-filter>
15 </activity>
16 <activity android:name=".activities.Activities"></activity>
17
18 </application>
19</manifest>

Das ist jetzt aber auch mehr geraten als gewusst, da ich nicht weiß wie Android sich hier verhält wenn man verschiedene Pfade und ab und an absolute Pfade angibt.

Das einzige was mir sonst noch auffällt ist, das du bei der Methode "goToActivities" ein "final View" übergibst und es nicht benutzt, kann mir aber nicht vorstellen dass das den Fehler verursacht.

Antworten
Georg Buchta
  • Forum-Beiträge: 24

27.09.2011, 18:02:02 via Website

Danke an alle !!

Ich habe den Fehler gefunden....
...man muss in der xml-Datei dem TextView eine Layout_Width und Layout_Height mitgeben...:*)
Ich hab da nur für die Vereinfachung einen Text mitgegeben...

Liebe Grüße
Georg

Antworten