So I have been searching around constantly on how to fix this application. But what I do not seem to understand as to Why it is crashing. My code is the same to all those other questions asked about the same issue, and it still does not seem to be working. Here is a copy of my Start screen.class file:
package org.concordacademy.hangman;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
private final String MA = "Main Activity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i(MA, "Loading Title Screen.");
}
// This Below Starts the Intent Push to the "Play Screen"
public void playGame(View v) {
Log.i(MA, "Starting Game");
Intent pushToPlayScreen = new Intent(MainActivity.this, PlayScreen.class);
startActivity(pushToPlayScreen);
}
@Override
public void onStart() {
super.onStart();
Log.i(MA, "onStart");
}
@Override
public void onResume() {
super.onResume();
Log.i(MA, "onResume");
}
@Override
public void onPause() {
super.onPause();
Log.i(MA, "onPause");
}
@Override
public void onStop() {
super.onStop();
Log.i(MA, "onStop");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(MA, "onDestroy");
}
}
Here is my Playscreen.class file:
package org.concordacademy.hangman;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class PlayScreen extends Activity {
// The String Below will tell Console/LogCat the processes of The PlayScreen Activity
private final String PS = "Play Screen";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_playscreen);
Log.i(PS, "Loading Play Screen.");
}
// Read Text File entitled wordsEn.txt
public String readFromFile() {
String words = "";
// Array List That Words being added to
ArrayList<String> wordLineArray = new ArrayList<String>();
try {
InputStream inputstream = openFileInput("wordsEn.txt");
if (inputstream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputstream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
wordLineArray.add(receiveString);
stringBuilder.append(receiveString);
}
inputstream.close();
words = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return words;
}
}
Here is my Manifest file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.concordacademy.hangman"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_hangmanicon"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:debuggable="true">
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".PlayScreen" >
</activity>
</application>
</manifest>
Here is my MainActivity Layout.XML File:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
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=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:gravity="center_horizontal"
android:text="@string/title"
android:textSize="50sp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="250dp"
android:text="@string/ButtonTitle"
android:onClick="playGame" />
</LinearLayout>
Here is my Playscreen Layout.XML file:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
android:id="@+id/fragment1"
android:name="org.concordacademy.hangman.GallowsFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Gallows Fragment (Added by partner) Class Code.
package org.concordacademy.hangman;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class GallowsFragment extends Fragment {
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_gallows, container, false);
return view;
}
}
Stack Trace (LogCat, Fatal Exception Error)
03-01 11:11:04.921: E/AndroidRuntime(562): FATAL EXCEPTION: main
03-01 11:11:04.921: E/AndroidRuntime(562): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.concordacademy.hangman/org.concordacademy.hangman.PlayScreen}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2129)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2154)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread.access$700(ActivityThread.java:146)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1260)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.os.Handler.dispatchMessage(Handler.java:99)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.os.Looper.loop(Looper.java:137)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread.main(ActivityThread.java:4949)
03-01 11:11:04.921: E/AndroidRuntime(562): at java.lang.reflect.Method.invokeNative(Native Method)
03-01 11:11:04.921: E/AndroidRuntime(562): at java.lang.reflect.Method.invoke(Method.java:511)
03-01 11:11:04.921: E/AndroidRuntime(562): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043)
03-01 11:11:04.921: E/AndroidRuntime(562): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
03-01 11:11:04.921: E/AndroidRuntime(562): at dalvik.system.NativeStart.main(Native Method)
03-01 11:11:04.921: E/AndroidRuntime(562): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
03-01 11:11:04.921: E/AndroidRuntime(562): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:318)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Activity.setContentView(Activity.java:1920)
03-01 11:11:04.921: E/AndroidRuntime(562): at org.concordacademy.hangman.PlayScreen.onCreate(PlayScreen.java:24)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Activity.performCreate(Activity.java:5185)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)
03-01 11:11:04.921: E/AndroidRuntime(562): ... 11 more
03-01 11:11:04.921: E/AndroidRuntime(562): Caused by: java.lang.ClassCastException: org.concordacademy.hangman.GallowsFragment cannot be cast to android.app.Fragment
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Fragment.instantiate(Fragment.java:577)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Fragment.instantiate(Fragment.java:552)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.app.Activity.onCreateView(Activity.java:4828)
03-01 11:11:04.921: E/AndroidRuntime(562): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:686)
03-01 11:11:04.921: E/AndroidRuntime(562): ... 21 more
Please Please please respond if you know how to fix it. I have a project due next week and its bad enough if this intent is not working.
You extend Activity
. If you intend to use Fragment
from Support Library you will have to extend FragmentActivity
which is the base class for all support based fragments. ( for api level below 11)
Replace
import android.support.v4.app.Fragment;
By this
import android.app.Fragment
Note :
Your min sdk is 16 in manifest so there is no need to extend FragmentActivity
and use support based fragments.
There's a problem with Fragment import. GallowsFragment is defined as a SupportFragment, while in XML it's defined as a Fragment. In particular you need to edit your import:
import android.support.v4.app.Fragment;
should be:
import android.app.Fragment;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.