multi activity ... was mach ich verkehrt?

  • Antworten:15
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 7

08.03.2014, 00:39:35 via Website

hi leute,
bin neu hier und gerade bissl mit android am rumspielen ...
nunja hab nen kleines problem wollte ne 2te activity starten nur irgendwie stürzt die app immer ab wenn ich den button berühre und eigtl. die 2. activity starten sollte und ich komme mit meinem derzeitigen wissensstand leider nicht dahinter was da falsch läuft :( hoffe ihr könnt mir helfen ...
also hier ma die mainactivity:
1package de.kush.test;
2
3import android.os.Bundle;
4import android.app.Activity;
5import android.content.Intent;
6import android.view.Menu;
7import android.view.View;
8import android.view.View.OnClickListener;
9import android.widget.Button;
10
11public class MainActivity extends Activity {
12 private Button btn;
13 Intent intent = new Intent(this,Second.class);
14 private OnClickListener butListener = new OnClickListener(){
15
16 @Override
17 public void onClick(View v) {
18 // TODO Auto-generated method stub
19
20 startActivity(intent);
21
22
23 }
24
25 };
26
27
28 @Override
29 protected void onCreate(Bundle savedInstanceState) {
30 super.onCreate(savedInstanceState);
31 setContentView(R.layout.activity_main);
32 btn = (Button) findViewById(R.id.button1);
33 btn.setOnClickListener(butListener);
34 }
35
36 @Override
37 public boolean onCreateOptionsMenu(Menu menu) {
38 // Inflate the menu; this adds items to the action bar if it is present.
39 getMenuInflater().inflate(R.menu.main, menu);
40 return true;
41 }
42
43}

hier die manifest datei:
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="link"
3 package="de.kush.test"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk
8 android:minSdkVersion="8"
9 android:targetSdkVersion="14" />
10
11 <application
12 android:allowBackup="true"
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name"
15 android:theme="@style/AppTheme" >
16 <activity
17 android:name="de.kush.test.MainActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25
26 <activity
27 android:label="@string/app_name"
28 android:name=".Second" >
29
30 </activity>
31
32
33
34 </application>
35
36</manifest>

die second.java existiert logischerveise auch und zeigt testweise auch nur ne textview an
1package de.kush.test;
2
3import android.app.Activity;
4import android.os.Bundle;
5import android.view.Menu;
6
7public class Second extends Activity {
8
9 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 // TODO Auto-generated method stub
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.second);
14 }
15
16 @Override
17 public boolean onCreateOptionsMenu(Menu menu) {
18 // Inflate the menu; this adds items to the action bar if it is present.
19 getMenuInflater().inflate(R.menu.main, menu);
20 return true;
21 }
22
23}

das sollte ja eigtl. reichen oder? wenn ihr noch was braucht nochma bescheid sagen...
thx im vorraus

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

08.03.2014, 01:39:56 via App

Genau LogCat bitte posten.

— geändert am 08.03.2014, 01:40:47

LG Pascal //It's not a bug, it's a feature. :) ;)

Haakon T.

Antworten
  • Forum-Beiträge: 7

08.03.2014, 01:45:46 via Website

103-08 01:39:46.661: W/ApplicationPackageManager(26525): getCSCPackageItemText()
203-08 01:39:46.761: I/Adreno-EGL(26525): <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: (CL3869936)
303-08 01:39:46.761: I/Adreno-EGL(26525): OpenGL ES Shader Compiler Version: 17.01.11.SPL
403-08 01:39:46.761: I/Adreno-EGL(26525): Build Date: 01/17/14 Fri
503-08 01:39:46.761: I/Adreno-EGL(26525): Local Branch:
603-08 01:39:46.761: I/Adreno-EGL(26525): Remote Branch:
703-08 01:39:46.761: I/Adreno-EGL(26525): Local Patches:
803-08 01:39:46.761: I/Adreno-EGL(26525): Reconstruct Branch:
903-08 01:39:46.791: D/OpenGLRenderer(26525): Enabling debug mode 0
1003-08 01:39:50.505: W/ApplicationPackageManager(26702): getCSCPackageItemText()
1103-08 01:39:50.615: I/Adreno-EGL(26702): <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: (CL3869936)
1203-08 01:39:50.615: I/Adreno-EGL(26702): OpenGL ES Shader Compiler Version: 17.01.11.SPL
1303-08 01:39:50.615: I/Adreno-EGL(26702): Build Date: 01/17/14 Fri
1403-08 01:39:50.615: I/Adreno-EGL(26702): Local Branch:
1503-08 01:39:50.615: I/Adreno-EGL(26702): Remote Branch:
1603-08 01:39:50.615: I/Adreno-EGL(26702): Local Patches:
1703-08 01:39:50.615: I/Adreno-EGL(26702): Reconstruct Branch:
1803-08 01:39:50.655: D/OpenGLRenderer(26702): Enabling debug mode 0
1903-08 01:39:51.966: D/AndroidRuntime(26702): Shutting down VM
2003-08 01:39:51.966: W/dalvikvm(26702): threadid=1: thread exiting with uncaught exception (group=0x41806da0)
2103-08 01:39:51.966: E/AndroidRuntime(26702): FATAL EXCEPTION: main
2203-08 01:39:51.966: E/AndroidRuntime(26702): Process: de.kush.test, PID: 26702
2303-08 01:39:51.966: E/AndroidRuntime(26702): android.content.ActivityNotFoundException: Unable to find explicit activity class {/de.kush.test.Second}; have you declared this activity in your AndroidManifest.xml?
2403-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1648)
2503-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1442)
2603-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Activity.startActivityForResult(Activity.java:3511)
2703-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Activity.startActivityForResult(Activity.java:3472)
2803-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Activity.startActivity(Activity.java:3714)
2903-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.Activity.startActivity(Activity.java:3682)
3003-08 01:39:51.966: E/AndroidRuntime(26702): at de.kush.test.MainActivity$1.onClick(MainActivity.java:20)
3103-08 01:39:51.966: E/AndroidRuntime(26702): at android.view.View.performClick(View.java:4633)
3203-08 01:39:51.966: E/AndroidRuntime(26702): at android.view.View$PerformClick.run(View.java:19330)
3303-08 01:39:51.966: E/AndroidRuntime(26702): at android.os.Handler.handleCallback(Handler.java:733)
3403-08 01:39:51.966: E/AndroidRuntime(26702): at android.os.Handler.dispatchMessage(Handler.java:95)
3503-08 01:39:51.966: E/AndroidRuntime(26702): at android.os.Looper.loop(Looper.java:157)
3603-08 01:39:51.966: E/AndroidRuntime(26702): at android.app.ActivityThread.main(ActivityThread.java:5356)
3703-08 01:39:51.966: E/AndroidRuntime(26702): at java.lang.reflect.Method.invokeNative(Native Method)
3803-08 01:39:51.966: E/AndroidRuntime(26702): at java.lang.reflect.Method.invoke(Method.java:515)
3903-08 01:39:51.966: E/AndroidRuntime(26702): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
4003-08 01:39:51.966: E/AndroidRuntime(26702): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
4103-08 01:39:51.966: E/AndroidRuntime(26702): at dalvik.system.NativeStart.main(Native Method)

ich schätze ma hängt mit der zeile zusammen ... aba ich habe sie doch in der manifest datei stehen :(

Antworten
  • Forum-Beiträge: 1.525

08.03.2014, 01:53:25 via Website

Etwa bin ich blind oder keine Ahnung. Aber soweit stimmt eigentlich alles?
Mal mit neuen Projekt versucht?


LG

Antworten
  • Forum-Beiträge: 7

08.03.2014, 01:59:42 via Website

hab ich gerade eben getan gleiche meldung wieder ...
fehlt in der manifest datei noch irgendwas oder habe ich vlt. irgend ein namen groß/klein geschrieben was nicht sein dürfte oder so?

Antworten
  • Forum-Beiträge: 1.525

08.03.2014, 02:05:42 via Website

Arbeitest du mit Eclipse oder Android Studio?


LG

Antworten
  • Forum-Beiträge: 1.525

08.03.2014, 02:08:33 via Website

Fügst du deine neue Activity Manuel in die Manifest ein?
Mit Eclipse kannst du es ja auch machen lassen.
Arbeite schon lange nicht mehr mit Eclipse, deswegen weiß ich es nicht mehr genau.

LG

Antworten
  • Forum-Beiträge: 7

08.03.2014, 02:15:45 via Website

habs über beide methoden gemacht ...
naja irgendwie is da heute wohl der wurm drin glaube ich lösche beide projekte nochmal und probiers morgen nochma würde mich dann hier in dem thread nochma melden wenn ich es morgen mitm ausgeschlafenen kopf immer noch nich auf die reihe bekomme ...

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

08.03.2014, 02:16:51 via App

Ist es nicht so, dass ein Layout nur für eine Activity bestimmt werden kann?

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
  • Forum-Beiträge: 7

08.03.2014, 02:23:17 via Website

das weiß ich nicht, aba mit dem neuen activity aufruf wird ja auch ne neue layout datei benutzt ...(also in der neuen activity) mit setContentView(R.layout.second) ... also sind es ja 2 layout dateien ... oder sehe ich das falsch

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

08.03.2014, 02:38:09 via App

Entschuldige, hab jetzt gtoßen Mist erzählt. mit den Layouts ist alles in Ordnung

Ich sammle gerne Namen in meinem Death Note.

Samsung Galaxy Note 2<3 -> Samsung Galaxy Note 3 <3

Antworten
  • Forum-Beiträge: 1.525

08.03.2014, 03:15:23 via Website

Hallo.

Habe mal alles so gemacht wie du auch.
Und habe deinen Fehler gefunden.

Das LogCat sagt dir eigentlich auch immer genau wo der Fehler ist.
Zumindest sagt mein Android Studio mir das.

1startActivity(intent);
Hier ist der Fehler.

So sollte man es nie machen.
1private Intent intent = new Intent(this,Second.class);

Du musst es etwa so machen, beide in der onClick().
1Intent intent = new Intent(this,Second.class);
2 startActivity(intent);

Oder du schreibst deine onClick() Methode mal richtig/besser.
So wie du es schreibst ist eigentlich mist.:D

Man schreibt es so am besten:
1public class MainActivity extends Activity implements View.OnClickListener {
2
3 private Button button;
4
5 @Override
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.activity_main);
9
10 button = (Button)findViewById(R.id.button);
11 button.setOnClickListener(this);
12
13 }
14
15 @Override
16 public void onClick(View v) {
17
18 Intent intent = new Intent(getApplicationContext(),Second.class);
19 startActivity(intent);
20
21 }
22}

So klappt auch gleich immer alles :D.
Und hast gute Übersicht.



LG

— geändert am 08.03.2014, 03:18:56

peter lustig

Antworten
  • Forum-Beiträge: 7

08.03.2014, 11:00:15 via Website

vielen lieben dank für deine mühen klappt jetzt wunderbar jetzt bin ich erstmal wieder happy ... bis zum nächsten problem :)

Mac Systems

Antworten

Empfohlene Artikel