2012-05-17 4 views
0

L'application que je développe est en train de jouer avec moi. J'ai trois activités en ce moment (qui sont toutes définies dans le manifeste), que toute la transition dans l'autre i.e intro -> activity1 -> activity2. Le passage de l'intro à la première activité fonctionne très bien à l'aide:Android startActivity() fonctionne pour une classe mais pas pour l'autre

public void GOTOGPS(View v) 
{ 
    switch (v.getId()){ 

    case R.id.button1: startActivity(new Intent(v.getContext(), StreetLightOutageActivity.class));//Jump to StreetLightOutageActivity (main.xml) 
    default: break; 

    }//switch 
}//GOTOGPS 

Cependant, la méthode dans ma deuxième activité « StreetLightOutageActivity » qui est utilisé pour aller à mon troisième activité ne fonctionne pas:

public void GOTOCAMERA1(View v) 
{ 

    switch (v.getId()){ 

    case R.id.picturebutton: startActivity(new Intent(v.getContext(), Camera.class)); 
    default: break; 

    }//switch 

}//GOTOCAMERA1 

LogCat me donne un ActivityNotFoundException:

05-17 15:51:41.292: E/AndroidRuntime(534): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {sl.reporter/android.hardware.Camera}; have you declared this activity in your AndroidManifest.xml? 

puis un InvocationTargetException que je suppose découle de l'exception précédente:

05-17 15:51:41.292: E/AndroidRuntime(534): Caused by: java.lang.reflect.InvocationTargetException 

Maintenant, ce qui est vraiment me faire, est que si je modifie la méthode de transition de mon IntroScreen à ma deuxième activité pour aller à « Camera.class » au lieu de StreetLightOutageActivity.class, cela fonctionne.

enfin, voici mon manifeste juste au cas où il aide,

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

<uses-sdk android:minSdkVersion="15" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

<application 
    android:icon="@drawable/ic_launcher"> 
    <activity 
     android:name=".StreetLightOutageActivity"> 
    </activity> 
    <activity 
     android:name=".Camera"> 
    </activity> 
    <activity 
     android:name=".Introscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

Répondre

1
case R.id.picturebutton: startActivity(new Intent(v.getContext(), Camera.class)); 

Je pense que dans le code ci-dessus que vous souhaitez utiliser sl.reporter.Camera classe, mais à tort, vous vous retrouvez à l'aide android.hardware.Camera.

+0

Sainte vache, je pars déjeuner et reviens et tu l'as déjà réparé. J'ai enlevé "android.hardware.Camera" et utilisé "sl.reporter.Camera" comme vous l'avez dit et cela a fonctionné parfaitement. – 0nyx

+1

Je suis content que votre problème soit résolu. Mais pourquoi ne choisissez-vous pas ma réponse comme correcte? :) –

+0

Désolé, ceci est mon premier post sur StackOverflow. Je viens de le faire. – 0nyx

0

Vous utilisez la mauvaise importation pour votre classe prétendue d'activité de la caméra:

Unable to find explicit activity class {sl.reporter/android.hardware.Camera}; 
0

Vous probablement sont référençant le Android construit dans la caméra Classe à la place de votre propre

Assurez-vous que je n vos importations vous n'avez pas

import android.graphics.Camera; 

ou

import android.hardware.Camera; 

le cas échéant supprimer et assurez-vous que lorsque vous importez votre classe de la caméra, il pointe vers votre propre ..

ex.

import sl.reporter.Camera; 
+0

mieux encore, changez le nom de votre activité – keyser

+0

Je le ferai dans le futur, leçon apprise. – 0nyx

Questions connexes