2012-07-06 2 views
0

En essayant d'utiliser un bouton pour changer d'activité dans mon application, je maintiens la fermeture forcée. Heres mon AndroidManifest.xml:Force Close lorsque vous tentez de changer d'activité

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.idiedastyear" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="9" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".tabView" 
     android:label="@string/title_activity_tab_view" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".calculator" 
     android:label="Calculator" > 
    </activity> 
</application> 

Et voici l'activité qui a le bouton:

package com.idiedastyear; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.support.v4.app.NavUtils; 


public class tabView extends Activity { 

    Button calculator; 

    @Override 



    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_tab_view); 
     calculator = (Button)findViewById(R.id.calculatorButton); 

     calculator.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent calculatorIntent = new Intent(v.getContext(), calculator.class); 
       startActivityForResult(calculatorIntent, 0); 
      } 
     }); 
    } 




} 

Si quelqu'un pouvait aider ce serait génial! Merci!

EDIT [Logcat]:

07-06 17: 38: 06,683: D/memalloc (25668): ion: Base tampon mappé : 0x5ce6c000 taille: 3768320 offset: 0 fd: 53 07- 06 17: 38: 08.885: D/memalloc (25668): ion: Base de tampon mappée: 0x5d304000 taille: 3768320 offset: 0 fd: 60 07-06 17: 38: 08.985: D/CLIPBOARD (25668): Masquer le presse-papiers dialog à Démarrer l'entrée: terminé par quelqu'un d'autre ...! 07-06 17: 38: 11.738: D/memalloc (25668): ion: Base de tampon mappée: 0x5d69c000 taille: 3768320 offset: 0 fd: 63 07-06 17: 38: 12.168: D/AndroidRuntime (25668) : Arrêt de VM 07-06 17: 38: 12.168: W/dalvikvm (25668): threadid = 1: thread sortant avec exception non interceptée (groupe = 0x40c72a68) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): FATAL EXCEPTION: 06/07 principale 17: 38: 12,178: E/AndroidRuntime (25668): java.lang.RuntimeException: Impossible de démarrer l'activité ComposantInfo {com.idiedastyear/com.idiedastyear.calculator}: androïde .view.InflateException: ligne de fichier XML binaire # 6: erreur classe de gonflage Textview 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1970) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1995) 07 -06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.ActivityThread.access $ 600 (ActivityThread.java:128) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): à android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1161) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.os.Handler.dispatchMessage (Handler.java:99) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.os.Looper.loop (Looper.java:137) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.ActivityThread.main (ActivityThread.java:4514) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au java.lang.reflect.Method .invokeNative (méthode native) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au java.lang.reflect.Method.invoke (Method.java:511) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:980) 07-06 17: 38: 12,178: E/AndroidRuntime (25668): à com .android.internal.os.ZygoteInit.main (ZygoteInit.java:747) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): à dalvik.system.NativeStart.main (méthode native) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): Causé par: android.view.InflateException: Ligne de fichier XML binaire # 6: Erreur de classe de gonflage Textview 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android. view.LayoutInflater.createViewFromTag (LayoutInflater.java:691) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.rInflate (LayoutInflater.java:739) 07-06 17: 38: 12.178 : E/AndroidRuntime (25668): au android.view.LayoutInflater.inflate (LayoutInflater.java:489) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.inflate (LayoutInflater.java:396) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.inflate (LayoutInflater.java:352) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au com.android.internal.policy.impl.PhoneWindow.setContentView (PhoneWindow.java:274) 07-06 17: 38: 12.178: E/AndroidRuntime (2 5668): à android.app.Activity.setContentView (Activity.java:1835) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au com.idiedastyear.calculator.onCréer (calculator.java: 20) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.Activity.performCreate (Activity.java:4470) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): à android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1053) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1934) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): ... 11 plus 07-06 17: 38: 12.178: E/AndroidRuntime (25668): Causée par: java.lang.ClassNotFoundException: android.view.Textview 07-06 17: 38: 12,178: E/AndroidRuntime (25668): à dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:61) 06/07 17 : 38: 12.178: E/AndroidRuntime (25668): au java.lang.ClassLoader.loadClass (ClassLoader.java:501) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au java.lang .ClassLoader.loadClass (ClassLoader.java:461) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.createView (LayoutInflater.java:552) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.onCreateView (LayoutInflater.java:636) 07-06 17: 38: 12.178: E/Et roidRuntime (25668): au com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:66) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view. LayoutInflater.onCreateView (LayoutInflater.java:653) 07-06 17: 38: 12.178: E/AndroidRuntime (25668): au android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:678) 07-06 17:38 : 12,178: E/AndroidRuntime (25668): ... 21 plus

+0

Avez-vous une classe appelée 'calculatrice'? Parce que maintenant, vous essayez de démarrer une Activity à partir de la classe de votre Button, ce qui ne fonctionnera pas. En outre, lorsque vous obtenez une fermeture de force, veuillez publier vos journaux LogCat. – Eric

+0

Pourquoi ne publiez-vous pas une sortie Logcat? – AAnkit

+0

essayez 'Intent calculatorIntent = new Intent (tabView.this, calculator.class);' –

Répondre

0

Votre code a les suivantes:

Intent calculatorIntent = new Intent(v.getContext(), calculator.class);

Le deuxième paramètre est censé être le nom de la classe d'activité. Vous semblez également avoir mélangé le nom de l'instance de la calculatrice avec la calculatrice.classe ici que vous lancez.

Je suggère ce qui suit:

  1. Créer une classe d'activité appelée CalculatorActivity.
  2. Vérifiez que vous l'avez défini dans AndroidManifest.xml
  3. Utilisez la ligne suivante pour lancer l'activité:

Intent calculatorIntent = new Intent(getBaseContext(), CalculatorActivity.class);

De plus pour vous aider avec précision, s'il vous plaît fournir la sortie LogCat également.

+0

Cela ne peut pas être le cas @ Romin. Vous ne pouvez pas écrire buttonObject.class .. il pourrait s'agir d'une erreur du compilateur. – AAnkit

+0

@Ankit Je ne comprends pas votre point. Pourriez-vous indiquer où j'ai utilisé buttonObject.class dans les étapes ci-dessus que j'ai données (1,2,3)? – Romin

+0

Le deuxième paramètre est censé être le nom de la classe d'activité. Vous semblez également avoir mélangé le nom de l'instance de la calculatrice (Fondamentalement c'est un instalce de Button) avec la calculatrice.class ici que vous lancez. "Je ne vois pas ce mélange de noms peut être une cause du problème. Bien que ce soit une bonne suggestion .. – AAnkit

0

Vous ne devriez pas utiliser

startActivityForResult(calculatorIntent, 0); 

au lieu d'utilisation au-dessus

startActivity(calculatorIntent); 

startActivityForResult (calculatorIntent, 0); est utilisé pour avoir le résultat de l'activité que vous démarrez. Si vous voulez juste changer d'activité startActivity est suffisant. Bien que vous devriez poster logcat pour de meilleures réponses.

+0

S'il vous plaît signaler une erreur pour Down vote – AAnkit

+0

Encore force ferme :( –

+0

du logcat il peut être supposé qu'il y a un problème dans votre classe de calculatrice, S'il vous plaît poster la calculatrice oncreate et le fichier xml aussi – AAnkit

Questions connexes