2012-08-01 127 views
6

每当我尝试使用Intent从活动中启动FragmentActivity时,我都会收到强制关闭。下面是从活动代码:从含有意图的活动开始片段活动

Intent intent = new Intent(getApplicationContext(), OrgHome.class); 
intent.putExtra("Username", organization_name.getText().toString()); 
startActivity(intent); 

而这里的logcat的:

08-01 16:52:45.823: E/AndroidRuntime(600): FATAL EXCEPTION: main 
08-01 16:52:45.823: E/AndroidRuntime(600): java.lang.NoClassDefFoundError: com.project3.organizations.OrgHome 
08-01 16:52:45.823: E/AndroidRuntime(600): at com.project3.organizations.MainActivity$1$1.mobDBResponse(MainActivity.java:76) 
08-01 16:52:45.823: E/AndroidRuntime(600): at com.mobdb.android.MobDBRequest.onPostExecute(MobDBRequest.java:78) 
08-01 16:52:45.823: E/AndroidRuntime(600): at com.mobdb.android.MobDBRequest.onPostExecute(MobDBRequest.java:1) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.os.AsyncTask.finish(AsyncTask.java:417) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.os.AsyncTask.access$300(AsyncTask.java:127) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.os.Looper.loop(Looper.java:123) 
08-01 16:52:45.823: E/AndroidRuntime(600): at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-01 16:52:45.823: E/AndroidRuntime(600): at java.lang.reflect.Method.invokeNative(Native Method) 
08-01 16:52:45.823: E/AndroidRuntime(600): at java.lang.reflect.Method.invoke(Method.java:507) 
08-01 16:52:45.823: E/AndroidRuntime(600): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-01 16:52:45.823: E/AndroidRuntime(600): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-01 16:52:45.823: E/AndroidRuntime(600): at dalvik.system.NativeStart.main(Native Method) 
08-01 16:52:48.053: I/Process(600): Sending signal. PID: 600 SIG: 9 

OrgHome.class在清单中正确定义。这里发生了什么?

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

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

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

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

</manifest> 
+0

你怎么知道“OrgHome.class在清单中正确定义了”? – mfrankli 2012-08-01 21:06:28

+0

看看编辑 – 2012-08-01 21:09:59

+0

OrgHome.java顶部的'package'声明是什么? – Eric 2012-08-01 21:10:37

回答

5

更改清单:

使用这个命令OrgHome是在同一个地方MainActivity

<activity android:name=".OrgHome" /> 

使用此,如果它在一个子文件夹

<activity android:name=".sub.path.to.OrgHome" /> 

或者指定整个路径

<activity android:name="entire.path.to.OrgHome" /> 
+0

我使用WYSIWYG编辑器添加了类,所以我觉得它不应该这样,但我会添加'.',因为它位于同一个文件夹 – 2012-08-01 21:14:20

+0

清单并非天生就是错误的。我相信这只是你如何定义它与你如何称呼它的结合。这个答案绝对是解决它的最好方法。 – mfrankli 2012-08-01 21:15:37

+0

你是否改变了文件路径?所见即所得的编辑器如果在包之间移动它们,则不会执行引用更改。 – DeeV 2012-08-01 21:15:46