問題タブ [native-activity]
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.
android - NativeActivity を使用した「実装が見つかりません」
Java 側に接続するために android_native_app_glue ファイルと共に、NativeActivity を使用するプロジェクトに取り組んでいます。Java を介していくつかの非 NDK クラスにアクセスする必要があり、C から Java への呼び出しを行う方法を理解しましたが、逆に問題があります。Java から CI への呼び出しで "No implementation found for etc..." が表示される場合、この種の呼び出しのほとんどの落とし穴を確認し、すべてが正しいと信じています。これがActivityクラスです。
これはグルー コードを使用する NativeActivity であるため、呼び出される JNI_OnLoad はありません。エントリ ポイントは android_main です (グルー コードは独自のスレッドで実行するように設定されています)。
logcat から
何かが実行されるという事実は、ライブラリがロードされていることを意味し、ログにもあります
その名前をjavahで確認しました
ライブラリexternsもチェックしましたが、関数はそこにあります
別のプロジェクトでこの問題が発生し、テスト アプリ (上記のコードの元) を作成したため、ランダムで一意の構成の問題ではありません。私はこれについて少し途方に暮れています.NativeActivityとグルーコード(おそらくスレッド)に問題があると思いますが、それを回避する方法がわかりません. どんな助けでも大歓迎です。
java - nonActivity Java クラスでの onActivityResult の実装
私は Intent 呼び出しを介して画像機能をキャプチャすることに取り組んでいます。
非ActivityクラスからstartActivityforResultを実装することに成功しました。そこでアクティビティコンテキストを取得しています。
今、同じJavaクラスでonActivityResultを受け取りたいです。私が知っているように、このメソッドを受け取るにはActivityクラスが必須です。
それは可能でしょうか?
Java Proxy、 InvocationHandler リンクで呼び出そうとしましたが、成功しませんでした。
コード:
編集:
OnActivityResultListener は Android Preference クラスのインターフェースです。だから、私はこれに InvocationHanlder リンクに取り組む必要があります。
android - JNI経由でJava UIを作ろうとしている
私は NativeInterface に基づいたアプリを持っているので、主に C++ で書かれています。ただし、画面に標準の UI 要素をいくつか表示したいので、呼び出されたときに画面に UI を表示するメソッドを使用して、小さな Java クラスを作成しました。このようにして、何かを画面に表示したいときに、JNI を介してトリガーすることができます。
関数は次のとおりです。
ただし、JNIからトリガーしても画面には何も表示されません。非常に悲惨です。関数に Log ステートメントを含めると、コンソールに問題なく出力されるので、呼び出されていることがわかります。ただし、デバイスの画面には何も表示されません。
奇妙な点は、このコードをランダムな空白のプロジェクトにカット アンド ペーストすると、希望どおりに動作することです。テキストボックスが表示されます。明らかに、このコードは画面上にテキストフィールドを作成できます。
そして、C++ コードに移動し、(このメソッドを呼び出すための) JNI 呼び出しを、このメソッド内のすべてのものに相当する JNI 呼び出しに置き換えると、それも機能します。
Java メソッドが呼び出されていることを確認しました。そして、テキスト フィールドは明らかに作成され、保持されています。そのテキストを確認して操作できます。コードの観点からは、すべて問題ないように見えます。画面に映らないだけです。
誰でも理由がわかりますか?
android - ndk-build を使用して NativeActivity をビルドする
Javaから通常どおり起動した後、ネイティブアクティビティを起動しようとしています(別のライブラリをロードする必要があるため、JavaからNativeActivityを起動しています)。
Android.mk を使用してサンプルをビルドするにはどうすればよいですか? 元のサンプルでは gradle を使用しています。ビルドしようとしましたが、起動時にライブラリのロードに失敗しました。
コードのスニペットを次に示します。
Java アクティビティ
Android マニフェスト
build.gradle
ありがとう