2016-07-08 3 views
1

私はCodename Oneを使用して、ネイティブインタフェースを介してデバイスのmfg名とモデル番号にアクセスする方法をアプリケーションに提供しようとしています。私はチュートリアルを見ましたが、十分に簡単ですが、私はNoClassDefFoundErrorを右クリックして "Generate Native Access"を選択しています。私はクリーン/コンパイルを試みたが、私はまだエラーが発生します。誰がこれが何であるかに関する情報を提供することはできますか?完全なスタックトレースは次のとおりです。ネイティブアクセスの生成に失敗する

IllegalName: com/tsi/gpflow/NativeDeviceInfo
java.lang.NoClassDefFoundError: IllegalName: com/tsi/gpflow/NativeDeviceInfo at java.lang.ClassLoader.preDefineClass(ClassLoader.java:654) at java.lang.ClassLoader.defineClass(ClassLoader.java:761) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.codename1.plugin.intellij.actions.GenerateNativeAccessAction$1.buildFinished(GenerateNativeAccessAction.java:51) at com.intellij.lang.ant.config.execution.AntBuildMessageView$6$1$1$1.run(AntBuildMessageView.java:819) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEventsInWriteAction(RefreshSessionImpl.java:233) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl$1$1.run(RefreshSessionImpl.java:196) at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1009) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl$1.run(RefreshSessionImpl.java:193) at com.intellij.openapi.vfs.newvfs.RefreshSessionImpl.fireEvents(RefreshSessionImpl.java:206) at com.intellij.openapi.vfs.newvfs.RefreshQueueImpl$1$1.run(RefreshQueueImpl.java:93) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:345) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:329) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:857) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:658) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:386) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

答えて

1

バグがあります。残念ながら、私たちはMacではこの機能をテストしたに過ぎず、/というシンボルを使用する代わりに、File.separatorを使ったばかりの馬鹿(私)がいるようです。私たちは、次のプラグインのアップデートでそれを修正します。これは金曜日外出予定です(できれば)。

+0

回答ありがとうございます。アップグレードが終了したらもう一度試してみます。 –

+0

今日(3.4.5)の最新バージョンに更新されました。ネイティブインターフェイスの作成は、NativeLookup.createがNullを返すコードで実際に使用するときに動作します。私はcreateメソッドにブレークポイントを設定し、interfaceToClassLookupはヌルであり、registerメソッドが呼び出されないことを示します。私はそれが使用される場所を見つけることを試みたので、私はそれを手動で呼び出すことができます。最初のパラメータは作成したinterface.classですが、2番目のパラメータとして何を渡すべきかわかりません。 –

+0

ここで、createメソッドのコメントで、ネイティブインタフェースが基底のプラットフォーム(例えば、シミュレータプラットフォーム)に存在しない場合、nullを返すように見てきました。私はそれがシミュレータ上でそれを実行するときにnullを返すことを意味していると仮定しています。あれは正しいですか?それは私がシミュレータでそれを実行していたので、それを説明するでしょう。 –

関連する問題