1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. sem_thesis, 12.06.2011 #1
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Hallo! :biggrin:

    Habe ein kleines Beginner-Problem, und zwar.
    Habe 2 Pakete. Eines enthält eine Activity und soll den Service aus dem anderen Paket starten.

    com.paket1.MainActivity.java
    Code:
     
    final Intent police = new Intent();               
    police.setComponent(new ComponentName("com.paket2","com.paket2.ServiceClass"));
    startService(police);
    
    Eintrag im Manifest.xml:
    Code:
            <service android:name ="ServiceClass"
                         android:exported="true">
                <intent-filter>
                    <action android:name="com.paket2.ServiceClass">
                    </action>
                </intent-filter>
            </service>
    
    Bekomme aber trotzdem den Error:
    Vorschläge von euch Experten?:biggrin:
     
  2. swordi, 12.06.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    probier mal

    <service android:name ="com.paket2.ServiceClass"
    android:exported="true">
    <intent-filter>
    <action android:name="com.paket2.ServiceClass">
    </action>
    </intent-filter>
    </service>
     
  3. sem_thesis, 12.06.2011 #3
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Danke für deine Mühe!
    Ich bekomme jedoch immer noch die gleiche Fehlermeldung :(
     
  4. the_alien, 12.06.2011 #4
    the_alien

    the_alien Android-Lexikon

    Du gibst doch das allgemeine Package an für deine App, also zum Beispiel:
    de.sam.thesis
    Und alles weitere liegt dort drunter und aus dem Package und dem Namen wir das zusammengesetzt. Wenn du also jetzt als Servicenamen ".ServiceClass" angibst, dann muss die Klasse direkt unter dem Package zu finden sein:
    de.sam.thesis.ServiceClass

    Und das findet er einfach nicht.

     
  5. sem_thesis, 12.06.2011 #5
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Achso.
    Ok, in der Manifest-Deklaration habe ich das Paket angegeben.

    Code:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.packet1"
          android:versionCode="1"
          android:versionName="1.0">
    ....
    </manifest>
    
    Du meinst also, dass er jetzt jede Klasse am 'com.packet1' anhängt?
    Das würde ja heisst, dass ich nicht 2 Pakete innerhalb einer App haben kann?

    Oder kann ich im Manifest einen neuen Tag für das zweite Paket generieren?
    Code:
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.packet2"
          android:versionCode="1"
          android:versionName="1.0">
    ....
    </manifest>
    
    Das würde mich echt erstaunen, wenn man nicht auf Pakete übergreifen kann..
    Wenn ein Paket abstürzt, dass ist die App doch weg. Wie baut man denn da Redundanz und Stabilität in die App ein?
     
  6. swordi, 12.06.2011 #6
    swordi

    swordi Gewerbliches Mitglied

    warum nicht einfach einen gemeinsamen pfad

    com.meineapp.pakete.paket1
    com.meineapp.pakete.paket2

    und im manifest dann halt com.maineapp.pakete als package name
     
    sem_thesis bedankt sich.
  7. sem_thesis, 12.06.2011 #7
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Muss ich dann auch explizit das Paket com.meineapp.pakete erstellen und die beiden Pakete reintun?
    Oder genügt die Deklaration im Manifest?

    Jetzt habe ich nur mal die Manifest-Deklaration umgeändert und schon bekomme ich Fehlermeldung für res.Objekte.
    Überall wo ich 'R.layout.nameeineslayouts' stehen habe, zeigt Eclipse einen Fehler an :(
     
    Zuletzt bearbeitet: 12.06.2011
  8. the_alien, 13.06.2011 #8
    the_alien

    the_alien Android-Lexikon

    Clean
     
    sem_thesis bedankt sich.
  9. sem_thesis, 13.06.2011 #9
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Hat nicht geholfen. Auch nicht nach Eclipse-Neustart :(

    Ok - ich habe also einfach ich den Klassen, wo der Fehler aufgetaucht ist 'import com.meineapps.*' importiert ...

    BINGO!!! :D

    Jetzt habe ich den Service ganz normal mit
    Code:
                Intent police = new Intent();
                police.setAction("com.meineapps.packet2.ServiceClass");
                this.startService(police);
    
    gestartet.

    Jetzt möchte ich doch wissen - sorgt das wirklich für Stabilität? Wenn die App crasht, wird dann nur entweder Prozess com.meineapps.packet2 oder com.meineapps.packet1 unterbrochen oder geht das ganze Paket com.meineapps unter?
    Denn dann hätte die Implementation hier gar nix gebracht :(
     
    Zuletzt bearbeitet: 13.06.2011
  10. swordi, 13.06.2011 #10
    swordi

    swordi Gewerbliches Mitglied

    nur weil du 2 pakete gemacht hast, hast du nicht 2 prozesse.

    deine app wird innerhalb eines prozesses ausgeführt.
     
  11. sem_thesis, 13.06.2011 #11
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Verdammt :'(
    Genau das wollte ich vermeiden, deshalb habe ich eine Trennung eingelegt.
    Ich möchte nämlich, dass das zweite Pakete vom ersten aktiviert wird, falls er abstürzt.
     
  12. the_alien, 13.06.2011 #12
    the_alien

    the_alien Android-Lexikon

    Und wie soll es das machen wenn es doch sowieso abstürzt? Dafür müsstest du die Exception fangen und dann stürzt es auch nichtmehr ab, weil die Exception wurde ja gefangen...
     
  13. sem_thesis, 13.06.2011 #13
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Dafür müsste ich ja auch die Exception kennen, die vorkommen kann.. und da gibt es bestimmt einige Möglichkeiten.
    App neu launchen erschien mir die gemütlichere Methode..
     
  14. swordi, 14.06.2011 #14
    swordi

    swordi Gewerbliches Mitglied

    eine app kann aus sehr vielen gründen abstürzen, aber man kann die meisten davon abfangen :D

    ist alles eine frage der struktur :D
     
    the_alien bedankt sich.
  15. sem_thesis, 14.06.2011 #15
    sem_thesis

    sem_thesis Threadstarter Android-Hilfe.de Mitglied

    Genauer?
    Ich muss überall try-catch Blöcke einbauen..und überlegen was für Exceptions existieren...?
     

Diese Seite empfehlen