問題タブ [pyjnius]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Conda が pyjnius の JDK のパスを正しく設定しない
condaでpyjniusをインストールしました。ただし、pyjnius をインポートしようとすると失敗します
pyjnius とともに conda も openjdk をインストールします。次に、pyjnius はjvm.dll
いずれかのPATH
ディレクトリを探します。DLL は次の場所にあります。
C:\Users\OEM\Miniconda3\pkgs\openjdk-11.0.1-1017\Library\bin\server
しかし、conda には含まれていませんPATH
。に別のフォルダーを追加しますPATH
。
C:\Users\OEM\Miniconda3\envs\example2-env\Library\jre\bin\server
このディレクトリが見つからない場合: JRE はインストールされておらず、JDK のみがインストールされています。明らかに、最初のディレクトリをに含めることができますがPATH
、これは conda 仮想環境の概念をバイパスします。この問題をエレガントな方法で解決するにはどうすればよいですか?
environment.yml
問題を再現するには、次のようにします。
次に、次のように作成してアクティブ化します。
java - 'JavaException: Unable to find a None Method' を返す Pyjnius カスタム Java メソッドは、Public Static の後に機能します
そのため、Android の InputStream から ByteArray を読み取る必要がありました。したがって、リンクに記載されているのと同じ理由で、pyjnius を使用して kivy アプリの Java で このカスタム メソッドを使用しました。
ReadInput.java ファイルをこのディレクトリに配置しました。Java
~/Build_Environ/.buildozer/android/platform/build/dists/JniusPrintBluetoothAppie/src/main/java/org/kivy/android
クラスを pyjnius で初期化しました。
Java コード:
次のコードを使用して、Python でバッファから読み取ります。
しかし、何らかの理由で、この上記のコードで常に次のエラーが発生しました。
JavaException: Unable to find a None Method
何日もの苦労の末、メソッドを
public static
次のように宣言するだけで、ようやくメソッドが機能するようになりました。新しいJavaメソッドは次のようになり、上記と同じ方法で呼び出しました。
私が知りたいのは、「静的」という言葉が Java メソッドを突然機能させるのはなぜですか?