2016-01-26 89 views
2

我目前正試圖在windows phone上使用一些本機代碼來獲得代號。我創建了一個「原生示範」項目中,我改變了NativeCalls類只支持一個簡單的方法:爲什麼Codename One的NativeLookup.create返回null?

package com.codename1.nativedemo; 
import com.codename1.system.NativeInterface; 
public interface NativeCalls extends NativeInterface { 
    public String testString(); 
} 

從這一個我使用的上下文菜單項「生成本地」,改變了NativeCallsImpl.cs文件返回當調用testString時,「windows phone」。我的最後一次更改是StateMachine內:

protected void onGUI1_AddNativeButtonAction(Component c, ActionEvent event) { 
    super.onGUI1_AddNativeButtonAction(c, event); 
    try { 
     NativeCalls n = (NativeCalls) NativeLookup.create(NativeCalls.class); 
     if (n != null) { 
      if (n.isSupported()) { 
       Dialog.show("Got string", n.testString(), "OK", null); 
      } else { 
       Dialog.show("Error", "Platform not supported!", "OK", null); 
      } 
     } else { 
      Dialog.show("Error", "Native lookup returned null!", "OK", null); 
     } 
     c.getComponentForm().revalidate(); 
    } catch (Throwable t) { 
     Dialog.show("Error", "Exception during native access: " + t, "OK", null); 
    } 
} 

構建運行完美,它也運行在模擬器上。但是當我在手機上部署xap文件時(通過WP開發工具,QR碼不起作用,顯示「公司應用程序無法安裝)」,應用程序正常啓動,但顯示NativeLookup返回null。 dist文件夾中的.jar文件包含位於正確位置的.cs文件(com/codename1/nativedemo/NativeCallsImpl.cs,除了NativeCalls.class之外)

+1

在NativeCallsImpl.cs中,您是否將isSupported()方法設置爲true?默認情況下,我認爲這將是錯誤的。我想這可能不會幫助零問題,但這將是下一個問題。 –

+0

是的,它返回true –

回答

2

此查找返回null是一個例外拋出或創建期間出現故障。

我不是100%肯定這正常工作在目前的Windows Phone端口。

FYI當前的Windows Phone端口被棄用,經歷一個COM完全重寫。

+0

是否有可能在新版本可用時立即通知? –

+0

我們發佈博客,推特,臉書,鏈接等所有新聞,所以通過其中一個渠道訂閱通知可能會提供此類通知。 –