简体   繁体   English

Android-尝试更改活动时出错

[英]Android - Errors when trying to change activities

For some reason this came up when trying to switch activities. 由于某种原因,在尝试切换活动时出现了这种情况。 I've had no problem running the same kind of code with other activities in this project. 在该项目的其他活动中运行相同类型的代码没有问题。 I'll post the code and see if anyone can figure it out ;( 我将发布代码,看看是否有人可以弄清楚;(

I can't get my error to format right in this, so here's the error log http://textuploader.com/oe6g 我无法正确格式化错误,因此这是错误日志http://textuploader.com/oe6g

Here's my different activities. 这是我的不同活动。

The Problem occurs when I click on the button in my New Game Activity Layout, and that button runs the confirm(View view) 当我单击“新游戏活动布局”中的按钮,并且该按钮运行确认(查看视图)时,就会出现问题

NewGameActivity.java NewGameActivity.java

public class NewGameActivity extends Activity {
EditText title;
TextView team1, team2;
SqliteHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_newgame);
    //ListViews
    team1 = (TextView) findViewById(R.id.textView4);
    team2 = (TextView) findViewById(R.id.textView5);
    title = (EditText) findViewById(R.id.editText1);
    db = new SqliteHelper(this.getApplicationContext());
    populateListViews();
    registerClickCallback();
}

/*
 * 
 * Database Functions
 * 
 */





/*
 * 
 * ListView Stuff
 * 
 */
private void populateListViews() {
    // THIS HERE WILL POPULATE BOTH TEAM LIST VIEWS
    //Create list of items
    Cursor cursor = db.getTeams();

    ArrayList<String> values = new ArrayList<String>();
    if (cursor != null && cursor.getCount() != 0) {
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {

            values.add(cursor.getString(cursor.getColumnIndex("Team_Names")));

            cursor.moveToNext();
        }
    }       
    //Build Adapter
    ArrayAdapter<String> t1adapter = new ArrayAdapter<String>(
            this,                   // Context
            R.layout.teamlistviews,     // Layout to use
            values);                // Items to be displayed
    ArrayAdapter<String> t2adapter = new ArrayAdapter<String>(
            this,                   // Context
            R.layout.teamlistviews,     // Layout to use
            values);        
    //Configure the List View
    ListView t1list = (ListView) findViewById(R.id.listView1);
    t1list.setAdapter(t1adapter);
    ListView t2list = (ListView) findViewById(R.id.listView2);
    t2list.setAdapter(t2adapter);
}
private void registerClickCallback() {
    //This uses the List View and adds a listener to check for clicks/taps on different
    //list view items. It will then display a message telling you which one you have selected.
    ListView t1list = (ListView) findViewById(R.id.listView1);
    ListView t2list = (ListView) findViewById(R.id.listView2);
    t1list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked,
                int position, long id) {
            //team 1
                TextView textView = (TextView) viewClicked;

                //Changing team name
                TextView t1 = (TextView) findViewById(R.id.textView4);
                String team1 = textView.getText().toString();
                t1.setText(team1);
                //Toast message
                String message = "You Selected " + textView.getText().toString() + " for Team 1";
                Toast.makeText(NewGameActivity.this, message, Toast.LENGTH_SHORT).show();
        }

    });
    t2list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked,
                int position, long id) {
            //team 2
                TextView textView = (TextView) viewClicked;
                //Changing Team name
                TextView t2 = (TextView) findViewById(R.id.textView5);
                String team2 = textView.getText().toString();
                t2.setText(team2);
                //Toast message
                String message = "You Selected " + textView.getText().toString() + " for Team 2";
                Toast.makeText(NewGameActivity.this, message, Toast.LENGTH_SHORT).show();
        }

    });
}
public void confirm(View view) {
    String t1, t2, gTitle;
    t1 = team1.toString();
    t2 = team2.toString();
    gTitle = title.toString();

    Intent intent = new Intent(this, CourtActivity.class);
    intent.putExtra("TEAM1", t1);
    intent.putExtra("TEAM2", t2);
    intent.putExtra("GAME_TITLE", gTitle);
    startActivity(intent);

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}
}

CourtActivity.java CourtActivity.java

package com.example.statapalpha;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.TextView;
import android.widget.Toast;
import java.lang.Math;
import java.util.ArrayList;

// Court Screen
public class CourtActivity extends Activity implements OnMenuItemClickListener{

// Opens database
SqliteHelper db;

ArrayList<String> homePlayersIn = new ArrayList<String>();
ArrayList<String> awayPlayersIn = new ArrayList<String>();
ArrayList<String> homePlayersBench = new ArrayList<String>();
ArrayList<String> awayPlayersBench = new ArrayList<String>();

String team1, team2, team1n, team2n;
String player = "0"; // Player number for current play
String action = ""; // Action text for current play
position position = new position(); // Position for current play
int playNumber = 0;
private PopupMenu popupMenu;
boolean isHome = false;
int playerButton = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_court);
    db = new SqliteHelper(this.getApplicationContext());
    //Get Team 1 and 2 and Game Title
    convertStrings();
    // Gets players
    getPlayers();
}
public void convertStrings() {
    Intent mIntent = getIntent();
    team1n = mIntent.getStringExtra("TEAM1");
    team2n = mIntent.getStringExtra("TEAM2");
}
// Populates arrays with player numbers
void getPlayers() {
    homePlayersBench.add("12");
    homePlayersBench.add("10");
    homePlayersBench.add("32");
    homePlayersBench.add("16");
    homePlayersBench.add("13");
    homePlayersBench.add("19");

    homePlayersIn.add("13");
    homePlayersIn.add("14");
    homePlayersIn.add("15");
    homePlayersIn.add("16");
    homePlayersIn.add("17");

    awayPlayersBench.add("21");
    awayPlayersBench.add("22");
    awayPlayersBench.add("23");
    awayPlayersBench.add("24");
    awayPlayersBench.add("25");
    awayPlayersBench.add("26");

    awayPlayersIn.add("31");
    awayPlayersIn.add("32");
    awayPlayersIn.add("33");
    awayPlayersIn.add("34");
    awayPlayersIn.add("35");
}

// Stores x and y coordinate
public class position {
    public int x;
    public int y;
}

// Sets current player when a player button is clicked
public void setPlayer(View v) {
    Button b = (Button)v;
    player = b.getText().toString();
    playerButton = b.getId();
    switch(b.getId()) {
    case R.id.p1: 
    case R.id.p2:
    case R.id.p3:
    case R.id.p4:
    case R.id.p5: isHome = true; break;
    default: isHome = false;
            break;
    }
}

// Sets string Action to whatever action the user taps
// then records play to database.
public void setAction(View v) {
    Button b = (Button)v;
    String toastAction = "";
    String message = "";
    String team = "";

    switch(b.getId()) {
    case R.id.fgMade: action = "F" + goal(position) + "H"; toastAction = "made " + goal(position) + " point shot";
    break;
    case R.id.fgMissed: action = "F" + goal(position) + "M"; toastAction = "missed " + goal(position) + " point shot";
    break;
    case R.id.ftMade: action = "FTH"; toastAction = "made freethrow";
    break;
    case R.id.ftMissed: action = "FTM"; toastAction = "missed freethrow";
    break;
    case R.id.rebound: action = "RB"; toastAction = "rebound";
    break;
    case R.id.assist: action = "AST"; toastAction = "assist";
    break;
    case R.id.block: action = "BL"; toastAction = "block";
    break;
    case R.id.steal: action = "STL"; toastAction = "steal";
    break;
    case R.id.turnover: action = "TO"; toastAction = "turnover";
    break;
    case R.id.sub: action = "SUB"; toastAction = "substitution";
    break;
    case R.id.foul: action = "FC"; toastAction = "commited foul";
    break;
    case R.id.undoPlay: undoPlay(v);
    break;
    }

    if (action == "SUB") {
        popupMenu = new PopupMenu(this.getBaseContext(), v);
        Menu menu = popupMenu.getMenu();

        if (isHome == true) {
            for (String number : homePlayersBench) {
                menu.add(number);
            }
        }
        else {
            for (String number : awayPlayersBench) {
                    menu.add(number);
                }
        }

        popupMenu.setOnMenuItemClickListener(this);
        popupMenu.show();

        return;
    }
    else {
        message = "Player " + player + " " + toastAction + " at ("  + Integer.toString(position.x) + ", " + Integer.toString(position.y) + ")";
    }

    if (isHome == true)
        team = team1;
    else
        team = team2;

    playNumber++;
    db.recordPlay(Integer.parseInt(player), team, action, position, playNumber);
    Toast.makeText(CourtActivity.this, message, Toast.LENGTH_SHORT).show();
    refreshPlayers();
}


// Gets tap position and saves it to 'position'
@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP) {
        position.x = (int)event.getX(0);
        position.y = (int)event.getY(0);
    }

    return super.onTouchEvent(event);
}

int goal(position position) {
    int points=3;

    if ((Math.sqrt(Math.pow((position.x - 1082), 2) + Math.pow((position.y - 453), 2)) < 270) || (Math.sqrt(Math.pow((position.x - 193), 2) + Math.pow((position.y - 453), 2)) < 270)) points = 2;

    return points;
}


public void undoPlay(View v) {

    db.undoPlay(Integer.toString(playNumber));
}



@Override
public boolean onMenuItemClick(MenuItem item) {
    Button button = (Button)findViewById(playerButton);
    button.setText(item.getTitle());
    refreshPlayers();
    return false;
}
}

activity_court.xml activity_court.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:background="@drawable/bg2court"
tools:context="${relativePackage}.${activityClass}" xmlns:android1="http://schemas.android.com/apk/res/android">

<Button
    android:id="@+id/editPlays"
    android:layout_width="190dp"
    android:layout_height="75dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:onClick="editPlays"
    android:text="@string/edit_plays"
     />

<Button
    android:id="@+id/undoPlay"
    android:layout_width="190dp"
    android:layout_height="75dp"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/editPlays"
    android:onClick="undoPlay"
    android:text="@string/undo" />

<Button
    android:id="@+id/ftMissed"
    android:layout_width="190dp"
    android:layout_height="85dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:onClick="setAction"
    android:text="@string/miss" />

<Button
    android:id="@+id/ftMade"
    android:layout_width="190dp"
    android:layout_height="85dp"
    android:layout_above="@+id/ftMissed"
    android:layout_alignParentRight="true"
    android:onClick="setAction"
    android:text="@string/made" />

<Button
    android:id="@+id/fgMade"
    android:layout_width="190dp"
    android:layout_height="85dp"
    android:layout_above="@+id/fgMissed"
    android:layout_alignParentRight="true"
    android:onClick="setAction"
    android:text="@string/made" />

<Button
    android:id="@+id/fgMissed"
    android:layout_width="190dp"
    android:layout_height="85dp"
    android:layout_above="@+id/ftMade"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="52dp"
    android:onClick="setAction"
    android:text="@string/miss" />

<TextView
    android:id="@+id/fgText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/fgMade"
    android:layout_alignLeft="@+id/playerStats"
    android:layout_alignParentRight="true"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:text="@string/field_goal"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="38sp" />

<Button
    android:id="@+id/playerStats"
    android:layout_width="190dp"
    android:layout_height="75dp"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/undoPlay"
    android:onClick="redoPlay"
    android:text="@string/playerStats" />

<TextView
    android:id="@+id/ftText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/ftMade"
    android:layout_alignRight="@+id/fgText"
    android1:layout_alignLeft="@+id/ftMade"
    android:text="@string/free_throw"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="34sp" />

<Button
    android:id="@+id/foul"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/ftMade"
    android:onClick="setAction"
    android:color= "#FF0079FF"
    android:text="@string/foul" />

<Button
    android:id="@+id/steal"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/turnover"
    android:layout_alignParentLeft="true"
    android:onClick="setAction"
    android:text="@string/steal" />

<Button
    android:id="@+id/block"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/steal"
    android:layout_alignParentLeft="true"
    android:onClick="setAction"
    android:text="@string/block" />

<Button
    android:id="@+id/assist"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/block"
    android:layout_alignParentLeft="true"
    android:onClick="setAction"
    android:text="@string/assist" />

<Button
    android:id="@+id/rebound"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/assist"
    android:layout_alignParentLeft="true"
    android:onClick="setAction"
    android:text="@string/rebound" />


<Button
    android:id="@+id/p1"
    android:layout_width="80dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/rebound"
    android:onClick="setPlayer"
    android:text="@string/p1" />

<Button
    android:id="@+id/p2"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/p1"
    android:onClick="setPlayer"
    android:text="@string/p2" />

<Button
    android:id="@+id/p3"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/p2"
    android:onClick="setPlayer"
    android:text="@string/p3" />

<Button
    android:id="@+id/p4"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/p3"
    android:onClick="setPlayer"
    android:text="@string/p4" />

<Button
    android:id="@+id/p5"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/p4"
    android:onClick="setPlayer"
    android:text="@string/p5" />

<Button
    android:id="@+id/p10"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/editPlays"
    android:onClick="setPlayer"
    android:text="@string/p10" />

<Button
    android:id="@+id/p9"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/p10"
    android:onClick="setPlayer"
    android:text="@string/p9" />

<Button
    android:id="@+id/p8"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/p9"
    android:onClick="setPlayer"
    android:text="@string/p8" />

<Button
    android:id="@+id/p7"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/p8"
    android:onClick="setPlayer"
    android:text="@string/p7" />

<Button
    android:id="@+id/p6"
    android:layout_width="85dp"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/p7"
    android:onClick="setPlayer"
    android:text="@string/p6" />

<Button
    android:id="@+id/sub"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/foul"
    android:layout_toLeftOf="@+id/p1"
    android:onClick="setAction"
    android:text="@string/sub" />

<Button
    android:id="@+id/turnover"
    android:layout_width="190dp"
    android:layout_height="80dp"
    android:layout_above="@+id/sub"
    android:layout_toLeftOf="@+id/p1"
    android:onClick="setAction"
    android:text="@string/turnover" />

<TextView
    android:id="@+id/points"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/court"
    android:layout_alignRight="@+id/rebound"
    android:text="@string/points"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/fouls"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/undoPlay"
    android:layout_toLeftOf="@+id/p1"
    android:text="@string/fouls"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p1p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p1"
    android:layout_marginRight="35dp"
    android:text="@string/p1p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p1f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p1"
    android:layout_marginRight="35dp"
    android:text="@string/p1f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p2p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p2"
    android:layout_marginRight="35dp"
    android:text="@string/p2p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p2f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p2"
    android:layout_marginRight="35dp"
    android:text="@string/p2f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p3p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p3"
    android:layout_marginRight="35dp"
    android:text="@string/p3p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p3f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p3"
    android:layout_marginRight="35dp"
    android:text="@string/p3f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p4p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p4"
    android:layout_marginRight="35dp"
    android:text="@string/p4p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p4f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p4"
    android:layout_marginRight="35dp"
    android:text="@string/p4f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p5p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p5"
    android:layout_marginRight="35dp"
    android:text="@string/p5p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p5f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p5"
    android:layout_marginRight="35dp"
    android:text="@string/p5f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p6p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p6"
    android:layout_marginRight="35dp"
    android:text="@string/p6p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p6f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p6"
    android:layout_marginRight="35dp"
    android:text="@string/p6f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p7p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p7"
    android:layout_marginRight="35dp"
    android:text="@string/p7p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p7f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p7"
    android:layout_marginRight="35dp"
    android:text="@string/p7f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p8p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p8"
    android:layout_marginRight="35dp"
    android:text="@string/p8p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p8f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p8"
    android:layout_marginRight="35dp"
    android:text="@string/p8f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p9p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p9"
    android:layout_marginRight="35dp"
    android:text="@string/p9p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p9f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p9"
    android:layout_marginRight="35dp"
    android:text="@string/p9f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p10p"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/points"
    android:layout_alignRight="@+id/p10"
    android:layout_marginRight="35dp"
    android:text="@string/p10p"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/p10f"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/fouls"
    android:layout_alignRight="@+id/p10"
    android:layout_marginRight="35dp"
    android:text="@string/p10f"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<ImageView
    android:id="@+id/court"
    android:layout_width="900dp"
    android:layout_height="600dp"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/p10"
    android:contentDescription="@string/undo"
    android:src="@drawable/court" />

</RelativeLayout>

I mean it tells me the error occurs in the onCreate of the CourtActivity, however I can't see anything that's wrong. 我的意思是它告诉我该错误发生在CourtActivity的onCreate中,但是我看不到任何错误。 This is part of my school project, I'm only concerned with the things that are causing me errors currently, not too worried about anything else. 这是我学校项目的一部分,我只关心当前导致我出错的事情,而不必担心其他任何事情。

Note:This is a group project. 注意:这是一个小组项目。 The courtactivity screen is the only one I've not had a part in making, so I'm not sure exactly what went into it. 参与活动屏幕是我唯一没有参与的屏幕,因此我不确定确切内容。 However now I'm trying to put everything together and running into this. 但是,现在我试图将所有内容组合在一起并运行到此。

Anything helps! 有什么帮助! Thanks! 谢谢!

The error is coming from inflating the layout. 该错误来自布局的膨胀。 It's an OutOfMemoryError. 这是一个OutOfMemoryError。 Do you have some really huge bitmap or more likely a circular dependency? 您是否有一些非常大的位图或更可能是循环依赖项? Can you upload the xml file R.layout.activity_court? 您可以上传xml文件R.layout.activity_court吗?

The error is happening while attempting to load an image specified on the Layout file, as reported by the following part of the log: 尝试加载布局文件上指定的图像时发生错误,如日志的以下部分所报告:

...: Caused by: java.lang.OutOfMemoryError
...: E/AndroidRuntime(2137):    at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
...: E/AndroidRuntime(2137):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:503)

I bet if you remove the line android:background="@drawable/bg2court" from the root container (RelativeLayout) in the file activity_court.xml the error will be gone. 我敢打赌,如果您从文件activity_court.xml的根容器(RelativeLayout)中删除行android:background="@drawable/bg2court" ,该错误将消失。 If that is the case I would suggest you to try a smaller (lower resolution) version of that image. 如果是这种情况,我建议您尝试使用该图像的较小版本(较低分辨率)。
While looking for a replacement, keep an eye on the heap memory allocation messages on logcat so you will know how much progress you are making. 在寻找替代品时,请注意logcat上的堆内存分配消息,以便您知道自己正在取得多少进展。

Loading high resolution images on Android is usually a tricky process because of the following reasons: 由于以下原因,在Android上加载高分辨率图像通常是一个棘手的过程:

  1. Bitmap files loaded in memory have to be decompressed so they can be rendered, making them a lot larger then their original .JPG and .PNG files. 必须解压缩加载到内存中的位图文件,以便可以对其进行渲染,使其比原始的.JPG和.PNG文件大得多。 To calculate how many bytes of memory will be allocated to load a given image, just follow this simple formula: width ( pixels ) x height ( pixels ) x number bytes per pixel (3 for 24 bit images). 要计算将分配多少字节的内存来加载给定的图像,只需遵循以下简单公式:宽度( 像素 )x高度( 像素 )x每个像素个数字节(对于24位图像为3)。 Example: a bitmap with the size of 2048x2048 pixels takes exactly 12mb of memory; 例如:大小为2048x2048像素的位图恰好占用了12mb的内存;
  2. Bitmaps are loaded into the heap space which happens to be a pretty small portion of memory given by the OS to your app when it starts. 位图被加载到堆空间中,这恰好是操作系统在启动时为应用程序分配的一小部分内存。 The size of the heap space usually ranges from 16 to 64mb depending on the device. 堆空间的大小通常在16到64mb之间,具体取决于设备。

Finally, I would suggest one of the following approaches: 最后,我建议采用以下方法之一:

  1. Replace the large background image by a lower resolution version that can be scaled up to fill the background space (at the cost of quality of corse); 用较低分辨率的版本替换较大的背景图像,该分辨率可以放大以填充背景空间(以牺牲图像质量为代价);
  2. Load bitmaps programmatically. 以编程方式加载位图。 There are BitmapFactory methods that can downsample images on the fly, during the load process. 有一些BitmapFactory方法可以在加载过程中即时对图像进行下采样。 More on this here ; 这里更多的;
  3. Use a 3rd party library to do it for you. 使用第三方库为您做。 Picasso is an excelent choice. 毕加索是一个绝佳的选择。

I had this error no long ago but got some help from the guys in here 我不久前遇到这个错误,但是这里的家伙得到了一些帮助

here is what I did 这是我所做的

if your background / image don't need transpart stuff or like keep in JPG format as it will be smaller. 如果您的背景/图像不需要跨界的东西或喜欢保持JPG格式,因为它会更小。 this should sort your Out of Memory issue temp. 这应该可以解决您的“内存不足”问题。 but when you have more image coming up you will still have problem (Out of Memory) coming up again 但是当您要显示更多图像时,仍然会出现问题(内存不足)

hope this can help you for the time been 希望这能对您有所帮助

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM