2013-12-18 49 views
0

我嘗試將Sybase Unwired Platform與生成的Android代碼一起使用。 我有如下因素代碼例外:SUP 2.2 + Android在Application.getInstance()引發異常。setApplicationContext(this);

super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main);  

Application app = Application.getInstance(); 

String AppName = "timesheets"; 

if (app.getApplicationIdentifier() == null) 
    app.setApplicationIdentifier(AppName); 

if (app.getApplicationContext() == null) 
    app.setApplicationContext(this); //Place where app crashes 

調試窗口的樣子debug window

全部崩潰該行的執行begining後:

crash message box

Android版本4.1.2是( API 16)

爲什麼會崩潰?

回答

0

我甚至不知道Sybase是什麼,但我不相信將應用程序上下文設置爲Activity是個好主意。 this是指活動,不是嗎?

事實上,我甚至不能找到方法,在Android的API:

Application.setApplicationContext(this) 

看着這裏: ApplicationContextWrapperContext

什麼是你想通過這個存檔線?

+0

這個對象是活動。我只是使用sybase unwired平臺代碼示例作爲示例。示例代碼是Application app = Application.getInstance(); app.setApplicationIdentifier(「SUP101」); app.setApplicationContext(SUP101SampleActivity.this); 應用程序與com.sybase.mobile.Application相同。 SUP101SampleActivity擴展活動。 – user1749081

0

我糾正源到更清晰的形式:

com.sybase.mobile.Application app = com.sybase.mobile.Application.getInstance(); 

String AppName = "timesheets"; 

if (app.getApplicationIdentifier() == null) 
    app.setApplicationIdentifier(AppName); 

if (app.getApplicationContext() == null) 
    app.setApplicationContext(this); 
0

我使用的Android & SUP 2.1是Application.getInstance()做setApplicationContext(getApplicationContext());

我看到你仍然將活動作爲上下文傳遞。嘗試傳遞應用程序上下文,就像我在上面的行中寫的一樣。

0

試試這個:

app.setApplicationContext(getApplicationContext()); 
+0

考慮到op問爲什麼會崩潰,我認爲可能需要一點解釋。 – ChiefTwoPencils