2013-12-01 3 views
1

Это мой LogCatОшибка выполнения (это вызывает мое приложение силы закрыто)

12-02 00:07:37.039: D/AndroidRuntime(13719): Shutting down VM 
12-02 00:07:37.039: W/dalvikvm(13719): threadid=1: thread exiting with uncaught exception (group=0x40018578) 
12-02 00:07:37.039: E/AndroidRuntime(13719): FATAL EXCEPTION: main 
12-02 00:07:37.039: E/AndroidRuntime(13719): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pmss/com.pmss.Login}: java.lang.ClassCastException: android.widget.TextView 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.os.Looper.loop(Looper.java:130) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread.main(ActivityThread.java:3687) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at java.lang.reflect.Method.invokeNative(Native Method) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at java.lang.reflect.Method.invoke(Method.java:507) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at dalvik.system.NativeStart.main(Native Method) 
12-02 00:07:37.039: E/AndroidRuntime(13719): Caused by: java.lang.ClassCastException: android.widget.TextView 
12-02 00:07:37.039: E/AndroidRuntime(13719): at com.pmss.Login.onCreate(Login.java:23) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-02 00:07:37.039: E/AndroidRuntime(13719): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
12-02 00:07:37.039: E/AndroidRuntime(13719): ... 11 more 

Это мой Login.java

package com.pmss; 

import android.annotation.SuppressLint; 
import android.content.Intent; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class Login extends ActionBarActivity implements OnClickListener { 

Button login,register; 

@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    register = (Button) findViewById(R.id.register); 
    login = (Button) findViewById(R.id.login); 
    login.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(Login.this, MainMenu.class); 
      startActivity(intent); 
     } 
    }); 

    register.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent intent = new Intent(Login.this, Register.class); 
      startActivity(intent); 
     } 
    }); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     // For the main activity, make sure the app icon in the action bar 
     // does not behave as a button 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.login, menu); 
    return true; 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 

} 

} 

линия 23 в Login.java это

login = (Button) findViewById(R.id.login); 

Я действительно не знаю, где его исправить, так как нет ошибки компиляции. О я, прежде чем я забыл это мой Manifest.xml

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

<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="19" /> 
<uses-permission android:name="android.permission.INTERNET"/> 


<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar" > 
    <activity 
     android:name="com.pmss.Login" 
     android:label="@string/app_main" > 
     <intent-filter android:label="@string/app_name" > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.pmss.Register" 
     android:label="@string/button_register" 
     android:parentActivityName="com.pmss.Login" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.pmss.Login" /> 
    </activity> 
    <activity 
     android:name="com.pmss.MainMenu" 
     android:label="@string/title_activity_main_menu" 
     android:parentActivityName="com.pmss.Login" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.pmss.Login" /> 
    </activity> 
    <activity 
     android:name="com.pmss.UserInfo" 
     android:label="@string/title_activity_user_info" 
     android:parentActivityName="com.pmss.MainMenu" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.pmss.MainMenu" /> 
    </activity> 
    <activity 
     android:name="com.pmss.TrackParcel" 
     android:label="@string/title_activity_track_parcel" 
     android:parentActivityName="com.pmss.MainMenu" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.pmss.MainMenu" /> 
    </activity> 
    <activity 
     android:name="com.pmss.CheckCard" 
     android:label="@string/title_activity_check_card" 
     android:parentActivityName="com.pmss.MainMenu" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.pmss.MainMenu" /> 
    </activity> 
</application> 

</manifest> 

Я действительно очень разочарован о том, где изменить программный код для того, чтобы снова запустить.

Это мой activity_login.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/RelativeLayout1" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:useDefaultMargins="true" 
tools:ignore="ExtraText" > 

<EditText 
    android:id="@+id/password" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:ems="10" 
    android:inputType="textPassword" /> 

<Button 
    android:id="@+id/register" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/password" 
    android:layout_marginBottom="26dp" 
    android:gravity="center" 
    android:text="@string/button_register" /> 

<TextView 
    android:id="@+id/newuser" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/register" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="14dp" 
    android:text="@string/newuser" /> 

<EditText 
    android:id="@+id/userid" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView3" 
    android:layout_alignRight="@+id/password" 
    android:layout_marginBottom="14dp" 
    android:ems="10" 
    android:inputType="textPersonName" > 

    <requestFocus /> 
</EditText> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/userid" 
    android:layout_centerHorizontal="true" 
    android:text="@string/userid" 
    android:textSize="20sp" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/password" 
    android:layout_centerHorizontal="true" 
    android:text="@string/password" 
    android:textSize="20sp" /> 

<Button 
    android:id="@+id/login" 
    android:layout_width="100dp" 
    android:layout_height="50dp" 
    android:layout_alignLeft="@+id/textView3" 
    android:layout_below="@+id/password" 
    android:layout_marginTop="14dp" 
    android:gravity="center" 
    android:text="@string/button_login" /> 

</RelativeLayout> 
+2

'ClassCastException', потому что отбрасывание TextView на кнопку? поэтому проверьте Activity_login xml, что вы добавили идентификатор входа с Button или TextView, а также очистите проект перед запуском –

+1

после 'activity_login.xml'. – Raghunandan

+0

что вы имеете в виду на самом деле? – Nick

ответ

2

Если вы кодирования с IDE Eclipse, попробуйте собирается Проекты -> чистый и отметьте только проект, который вы работаете. Иногда при работе с макетами eclipse испортить сгенерированные ссылки R.java и missplaces, поэтому при компиляции иногда возникают странные ошибки в отношении исключений класса.

+0

oh .. Я очищаю свой проект, и он работает снова. Но что на самом деле означает исключения из класса? – Nick

+0

@Nick - это означает, что представление с id 'login', которое было создано при' inflation_login.xml', было завышено во время выполнения, было не 'Button', а скорее (по трассе стека)' TextView'. Очистка проекта заставляла файл .xml перекомпилироваться компилятором ресурсов, что устраняет проблему. –

+0

В вашем случае это объясняется тем, что я вложил в мой ответ, но обычно это означает, что вы пытаетесь преобразовать тип представления в другой, который не соответствует. Например, вы объявляете кнопку в своем xml и пытаетесь превратить ее в экземпляр TextView: TextView tv = (TextView) findViewById (R.id.my_custom_button); Рад, что мой ответ помог вам. Я утверждаю, что если вы можете установить его как принятый, а также курс = P, если у вас появятся новые вопросы, я вернусь. Удачи! – SuppressWarnings

Смежные вопросы