2012-02-14 84 views
-1

我有一个奇怪的错误与Android LiveWallpaper赶上尝试最后。当我设置这个 它适用于API的周围2.3ish:奇怪的抓住尝试最后错误

Canvas canvas = null; 
    //Keep trying till wallpaper is set. 
    //Error around here.. 
    try 
    { 
     canvas = this._surfaceHolder.lockCanvas(null); 
     synchronized (this._surfaceHolder) 
     { 
      this.onDraw(canvas); 
     } 
    } 

    finally 
    { 
     if(canvas != null) 
     { 
      this._surfaceHolder.unlockCanvasAndPost(canvas); 
     } 
    } 

这一点也适用于ICS &蜂窝(在真实设备上测试)

Canvas canvas = null; 
    //Keep trying till wallpaper is set. 
    //Error around here.. 
    try 
    { 
     canvas = this._surfaceHolder.lockCanvas(null); 
     synchronized (this._surfaceHolder) 
     { 
      this.onDraw(canvas); 
     } 
    } 

    finally 
    { 
     if(canvas != null) 
     { 
      this._surfaceHolder.unlockCanvasAndPost(canvas); 
     } 
    } 

当livewallpaper的“设置”时出现错误。 (服务失败,“异常锁定服务”) 我如何从一个编译中得到它的工作?我不想要两个不同的版本。

+3

我无法找到差异 – weston 2012-02-14 11:50:06

+0

这里没有真正的问题。你有什么错误?而且,因为我要么失明,要么疯狂,这两个代码片段之间有什么区别 - 它们看起来与我相同? – 2012-02-14 11:51:26

+1

@weston说了些什么,再加上 - 如果你正在使用尝试,最后,你不应该捕捉什么?您的应用程序崩溃,因为您没有捕获正在抛出的异常。 – RivieraKid 2012-02-14 11:52:52

回答

4

尝试捕捉的语法是:

try { 
    // Code 
} catch (<the Exception type to catch> ex) { 
    // Exception handling code 
} finally { 
    // Code for after 
} 

注:该计划将只赶上您指定的例外。如果您没有涵盖所有可能的例外情况,则不予处理。请参阅Oracle的Java教程中的catch blocks。尝试捕捉的

+0

它对你有帮助吗? – Goofy 2012-02-14 13:13:27

+0

给他一个看到它的机会! – weston 2012-02-14 13:23:28

+0

@ weston k fine fine – Goofy 2012-02-14 13:31:56

0

语法 尝试{

} {捕获异常E) //代码来捕获异常 } {终于

}

写代码完全按Java约定