2012-05-08 47 views
0

我得到在我的Android應用程序的ActivityNotFoundException ..下面的代碼片段我已經把調用活動:如何解決ActivityNotFoundException?

Intent i = new Intent(); 
i.putExtra("NAME", username.getText().toString()); 
i.setClassName(getPackageName(), SecondActivity.class.getSimpleName()); 
startActivity(i); 

我的AndroidManifest.xml看起來像這樣

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

<uses-sdk android:minSdkVersion="10" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.CAMERA"/> 

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 
    <activity android:name=".firstActivity" android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:label="@string/app_name" android:name=".SecondActivity" /> 
    <activity android:label="@string/app_name" android:name=".WelcomeActivity" /> 
</application> 

</manifest> 

當我執行意圖的代碼片段,我得到以下例外。

E/AndroidRuntime(731):android.content.ActivityNotFoundException: 無法找到明確的活動類{com.rangde/WelcomeActivity}; 你是否在你的AndroidManifest.xml中聲明瞭這個活動?

有人能告訴我我做錯了什麼嗎?

回答

2
//set your classname here 
    Intent i = new Intent(firstActivity.this, SecondActivity.class); 
    i.putExtra("NAME", username.getText().toString()); 
startActivity(i); 
+0

傑克遜

它? –

+0

@Arvind:用setClassName檢查我的答案 –

0

打電話給你SecondActvity喜歡這個

Intent i = new Intent(this,SecondActivity.class); 
i.putExtra("NAME", username.getText().toString()); 
startActivity(i); 
0

利用這個

String packageName = this.getPackageName(); 
i.setClassName(packageName ,packageName + "." + SecondActivity.class.getSimpleName()); 

代替

i.setClassName(getPackageName(), SecondActivity.class.getSimpleName()); 
+0

您在第二個參數中缺少完整活動路徑,所以在第二個活動中傳遞包名+活動名稱 –

0

,而不是寫

i.setClassName(getPackageName(), SecondActivity.class.getSimpleName()); 

嘗試

i.setClassName(getPackageName(), SecondActivity.class.getName()); 

SecondActivity.class.getSimpleName()只收益類的名稱。感謝 - - 但爲什麼不setClassName上班的路上我已經定義如果u寫SecondActivity.class.getName()得到完整的類名(含包名)

0
Intent intent = new Intent().setClass(Class1.this, Class2.class); 

i.putExtra("NAME", username.getText().toString()); 

startActivity(intent);