繁体   English   中英

我正在用Java编写一个Android应用程序,我认为这是内存泄漏,并且不知道如何解决它

[英]I am writing an Android app in java with what I believe to be a memory leak and don't know how to fix it

我正在为有几个纸牌游戏的学校项目编写Java应用程序。 我正在编写第一个游戏,并且已经为我计划做的所有游戏实现了框架。 我有一个称为Deck的类,该类控制所有卡片组逻辑,并在arrayList中使用52个卡片对象创建一个卡片组。 每当我创建卡片组时,程序都会停止并且不响应。 据我在网上看到的消息,它表明我创建了太多对象,该程序尝试清理它们或其他东西。 我对Java相当陌生,对于如何解决此问题也很困惑。 这是createDeck()方法和生成的LogCat输出。 任何帮助或智慧,我们将不胜感激。 提前致谢!

public void createDeck() 
{
    for (int i = 1; i <= 13; i++)
    {

        for (int j = 0; j < 4; i++)
        {

            if (j == 0) //If diamond suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 1) //If hearts suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 2) //If clover suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

            if (j == 3) //If spade suite
            {
                Card newCard = new Card(i, j);
                cardDeck.add(newCard);
            }

        }

    }
}

LogCat输出

WAIT_FOR_CONCURRENT_GC blocked 61ms
GC_CONCURRENT freed 153K, 7% free 3755K/4024K, paused 69ms+25ms total 213ms

一个小错误:

在第二个for循环更改中:

for (int j = 0; j < 4; i++)

至:

for (int j = 0; j < 4; j++)

顺便说一句,通过使用调试器或打印来记录日志-您很快就会找到它。

暂无
暂无

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

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