簡體   English   中英

使用std :: vector :: push_back()時,Android本機應用程序無法啟動

[英]Android, native app can't start when I use std::vector::push_back()


我需要在本機應用程序(它是cocos-2dx框架)中使用向量容器,因此,我添加了

APP_STL:= stlport_static

然后到Application.mk

#include <vector>

在使用vector的類的頭文件中,將變量定義為

std::vector<cocos2d::CCPoint*> *m_VertexAnchors;

然后做

m_VertexAnchors->push_back(point);

point這里實際上是CCPoint* point當我跑我的應用我只是看到黑色的屏幕比有2-3秒后消失,沒有任何消息。 logcat中的最后一條消息是(按應用程序名稱和詳細級別過濾)

04-01 13:22:57.068:D / dalvikvm(2939):GC_EXTERNAL_ALLOC釋放64K,47%釋放2887K / 5379K,外部0K / 0K,暫停40ms

並且僅在有關加載庫的消息之前沒有錯誤。 而且我沒有在主日志中看到任何奇怪的東西。 然后當我注釋掉

m_VertexAnchors->push_back(point);

該應用程序運行正常。

所以,有什么我想念的,如果沒有的話,我該如何調試(我將Eclipse與sequ​​oyah插件一起使用)

將不勝感激任何幫助或建議,謝謝。

在使用m_vertexAnchors之前,您必須正確地初始化它:

m_VertexAnchors = new std::vector<cocos2d::CCPoint*>();

您必須記住在不再需要時deletedelete

如果可以避免動態分配vector則將其聲明為:

std::vector<cocos2d::CCPoint*> m_VertexAnchors;

並使用它:

m_VertexAnchors.push_back(point);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM