2015-09-20 62 views
1

所以这是一件非常奇怪的事情,我无法弄清楚。Android应用程序在活动更改时崩溃,可能受布局影响

我正在开发一个正常的教育应用程序,只是应该有一些练习的日食。

一切都进行得非常好,我有我的一个练习完成,然后我决定添加第二个练习(在新的尝试,比如第一个)

所以我加了一个新的活动(Exercise3) ,没有任何东西,只有默认的日期增加的textview,我创建了一个按钮,导致从我的主菜单该活动。

代码是这样的,它是完全相同的代码(不同的名称偏离课程),适用于我的第一次练习,并完美地改变形式。

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

     // Capture button clicks 
     button2.setOnClickListener(new OnClickListener() { 
      public void onClick(View arg0) { 

       // Start NewActivity.class 
       Intent myIntent = new Intent(MainMenu.this, 
         Exercise3.class); 
       startActivity(myIntent); 
      } 
     }); 

是绝对日志中没有错误,并且应用程序运行非常好,但是当我按下按钮2打开新的活动我创造,我的应用程序崩溃。 再说一次,eclipse没有显示任何东西,代码和我的第一个按钮完全一样,但是我不知道这个是怎么回事。

虽然只有一些奇怪的东西,但在新的活动中,我添加了标准的“Hello World”文本视图,总是在那里被一个名为“Error loading”的文本视图所取代。在mainmenu活动中,我也忘记了标准的textview,现在它也说“Error loading”,而不是“hello world”。 (刚刚签出这是由我的合作伙伴在这个应用程序从strings.xml完成​​)。

的XML如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.main.pirateisland.Exercise3" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

</RelativeLayout> 

我注意到,ID从TextView的缺失,我尝试manualy加入它,或者完全删除它,同样的问题,当我尝试去应用程序崩溃从我的按钮到这种形式。

绝对没有error.warning任何来自日食,这使得我相当困惑。

我想xml有问题,但我不能找到什么。也许我改变了一些东西而不注意到?

也尝试清理项目,重新启动eclipse等,没有任何帮助,问题仍然存在。

编辑:添加的manifest.xml:

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

    <uses-sdk 
     android:minSdkVersion="13" 
     android:targetSdkVersion="22" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".MainMenu" 
      android:label="@string/app_name" 
      android:theme="@style/MyTheme" > 
      <intent-filter> 
       <action android:name="com.main.pirateisland.MainMenu" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".LoginScreen" 
      android:label="@string/title_activity_login_screen" 
      android:theme="@style/MyTheme" > 
      <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=".Exercise1" 
      android:label="@string/title_activity_exercise1" 
      android:theme="@style/MyTheme" > 
     </activity> 
     <activity 
      android:name=".SplitActivity" 
      android:configChanges="keyboardHidden|orientation" 
      android:label="@string/title_activity_split" 
      android:screenOrientation="portrait" 
      android:theme="@style/MyTheme" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MainActivity" 
      android:configChanges="keyboardHidden|orientation|screenSize" 
      android:label="@string/title_activity_main" 
      android:screenOrientation="landscape" 
      android:theme="@style/MyTheme" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".Exercise3" 
      android:label="@string/title_activity_exercise3" > 
     </activity> 
    </application> 

</manifest> 
+0

您是否已将新活动添加到AndroidManifest.xml文件?你可以添加你的清单文件吗? –

+0

发布您的LogCat –

回答

1

变化背景下,其中的活性会发生变化。

Intent myIntent = new Intent(SecondActivity.this, Exercise3.class); 

或者

Intent myIntent = new Intent(getApplicationContext(), Exercise3.class); 
+0

不幸的是它不工作。 – G90DD

0

.MainMenu

<activity 
     android:name=".MainMenu" 
     android:label="@string/app_name" 
     android:theme="@style/MyTheme" > 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity> 

的意图过滤除去action属性<action android:name="com.main.pirateisland.MainMenu" />和意图过滤器添加的类别默认到.Exercise3

<activity 
     android:name=".Exercise3" 
     android:label="@string/title_activity_exercise3" > 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</activity>