2012-04-04 5 views
3

Ich entwickle eine Android-Anwendung, die AndroidVNC-Viewer als ein Bibliotheksprojekt verwendet, aber ich bin nicht in der Lage, eine Aktivität von androidVNC (Aktivität nicht gefunden Ausnahme) zu starten.android: wie zu starten Aktivität definiert in Bibliothek Projekt

Auch, wie bündle ich ein Bibliotheksprojekt und verwende es als eine apk?

UPDATE

ich folgende Absicht bin mit nennen:

Intent call= new Intent("android.androidVNC.androidVNC.LAUNCH"); 
startActivity(call); 

UPDATE 2 nach folgendem Code Ich glaube, ich könnte die Aktivität starten, aber diesen bekommen (java.lang.NoSuchFieldError: android.androidVNC.R $ id.textIP) Fehler ...

Intent vnc_call = new Intent(getApplicationContext(), androidVNC.class); 
      vnc_call.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(login); 

, nachdem ich geprüft beide R.java, androidVNC Original und androidVNC, wenn sie als Bibliothek verwendet (unter erzeugten Java-Dateien) ... was ich habe ist textip gibt es in Orignal R.java aber es ist nicht, dass es in die R.java von (generierte Java-Dateien) im aufrufenden Projekt.

O/P von logcat (ersten Zeilen)


04-05 01:34:18.135: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.135: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.135: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8) 
04-05 01:34:18.135: W/dalvikvm(479): Link of class 'Landroid/androidVNC/ConnectionBean;' failed 
04-05 01:34:18.145: W/dalvikvm(479): VFY: unable to find class referenced in signature (Landroid/androidVNC/ConnectionBean;) 
04-05 01:34:18.155: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.155: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.155: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8) 
04-05 01:34:18.155: W/dalvikvm(479): Link of class 'Landroid/androidVNC/ConnectionBean;' failed 
04-05 01:34:18.187: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.187: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.187: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8)` 

04-05 01:34:18.135: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.135: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.135: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8) 
04-05 01:34:18.135: W/dalvikvm(479): Link of class 'Landroid/androidVNC/ConnectionBean;' failed 
04-05 01:34:18.145: W/dalvikvm(479): VFY: unable to find class referenced in signature (Landroid/androidVNC/ConnectionBean;) 
04-05 01:34:18.155: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.155: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.155: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8) 
04-05 01:34:18.155: W/dalvikvm(479): Link of class 'Landroid/androidVNC/ConnectionBean;' failed 
04-05 01:34:18.187: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/AbstractConnectionBean; (256) 
04-05 01:34:18.187: W/dalvikvm(479): Link of class 'Landroid/androidVNC/AbstractConnectionBean;' failed 
04-05 01:34:18.187: W/dalvikvm(479): Unable to resolve superclass of Landroid/androidVNC/ConnectionBean; (8) 

jeder Anhaltspunkt?

+0

Haben Sie es im Manifest deklariert? – MByD

+0

yeah..ich habe es erklärt – Sanyprashant

+0

Welche Android SDK-Version verwenden Sie, r17? – yorkw

Antwort

7

Obwohl Bibliotheksprojekte ihre eigene AndroidManifest.xml haben, wird ihr Inhalt nicht zu Ihrem Build hinzugefügt. Alles, was die Bibliothek enthält, die normalerweise im Manifest deklariert ist, muss in Ihr tatsächliches Anwendungsmanifest kopiert werden, wenn Sie beabsichtigen, sie zu verwenden. Dazu gehören Tätigkeiten, Broadcast-Empfänger, Dienstleistungen, Berechtigungen usw.

+0

danke für deine antwort, ich habe alles schon eingefügt ... aber immer noch aktivität nicht gefunden exception .. – Sanyprashant

+1

Basierend auf Ihrem aktualisierten Code, starten Sie nicht die Aktivität durch seinen Klassennamen starten Sie es basierend auf seiner Aktion. Enthält Ihr Aktivitäteneintrag im Manifest einen '' Abschnitt mit einer Aktion wie ''? Wenn nicht, können Sie die Aktivität nicht finden. Sie können entweder das Manifest ändern, um die Aktion im Intent-Filter zu deklarieren (Sie müssen möglicherweise auch '' auf den Filter, ich bin mir nicht sicher) oder ändern Sie, wie Sie Ihre Absicht definieren. – mah

+0

Danke, aber es hat nicht geholfen ... sogar ich verwende {Intent call = new Intent (getApplicationContext(), android.androidVNC .androidVNC.class);} Ich bekomme denselben Fehler .. – Sanyprashant

2

davon aus, dass lib und App haben unterschiedliche Namensräume:

wenn das lib-Manifest-info mit der App-Manifest Verschmelzung als mah beschrieben, haben Sie umfassen verschiedene Namespaces in der Aktivität?

<application ... > 
     <activity 
      android:name=".MyActivity" >... 

zu

<application ... > 
     <activity 
      android:name="my.namespace.MyActivity" >... 

neuesten Eclipse-android-Tools 1.7 verwendet, kann auch helfen. Siehe how-to-consume-reusable-gui-element-widget-with-resources-in-android für Details

+0

danke, aber ich habe es schon gemacht .. – Sanyprashant

+0

Auch Layout-Name sollte auch nicht gleich sein – Dhrupal

Verwandte Themen