問題タブ [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.

0 投票する
1 に答える
4248 参照

android - NativeActivityを使用して内部ストレージファイルシステムに書き込むにはどうすればよいですか?

純粋なC++ゲームをAndroidに移植していますが、ターゲットはAndroid 3.0以降のタブレットであるため、Javaを完全に回避するためにNativeActivityを使用することにしました。ただし、デバイスの内部ストレージに書き込むことができる機能が表示されません。どのディレクトリに書き込むかわからず、内部ストレージファイルシステムにアクセスできないため、fopen()の呼び出しは失敗します。

このコードは通常、Javaでトリックを実行し、アプリの内部書き込み可能データディレクトリへのパスを提供します。

誰かがC++の代替を知っていますか?それ以外の場合は、上記のスニペットをJNIで呼び出す必要があります。

もちろん、$ NDK /..../ include / android /ヘッダーを調べましたが、必要なメソッドの候補が見つかりません。

0 投票する
3 に答える
4015 参照

java - javaアクティビティからネイティブアクティビティを呼び出す方法は?

この質問で説明されているように、別の Android アクティビティからアクティビティを呼び出すことができることを知っています。私の質問は、意図を介して、または他の方法を使用して、Android アクティビティからネイティブ アクティビティを呼び出すことはできますか? はいの場合、どのように?

Android.mk私のネイティブアクティビティのファイルは次のとおりであり、ネイティブアクティビティコードは正常に構築されています

この xml を使用して、ネイティブ アクティビティをAndroidManifest.Xmlファイルに含めています。そして、私はここで間違いを犯していると思います。

上記のXMLを修正して、最初のJavaベースのアクティビティでこのようなことができるようにする方法を誰か教えてもらえますか(可能であれば)

現在、コンパイラが場所を特定できないため、このコードをコンパイルできませんmynativeactivity

0 投票する
1 に答える
2590 参照

android - Android NDK ネイティブ オーディオの例がクラッシュする

ネイティブ オーディオの例をビルドして Galaxy Tab 10.1 にダウンロードしましたが、動作しません。起動しようとしているように見えますが (つまり、ウィンドウ名が一番上に表示されます)、その後激しくクラッシュします。誰かがその理由について考えを持っていることを願っていますか? タブの音声サポートに問題があるのでしょうか、それとも...?

また、「android_native_app_glue」を使用して独自の非常に単純なネイティブ アクティビティを作成しようとしましたが、OpenSL 呼び出しを行っていなくてもクラッシュします。実際、LOCAL_LDLIBS に -lOpenSLES を追加するだけで、起動時のクラッシュが発生します。そのリンカー フラグを削除すると、クラッシュは発生しません。非常に奇妙で、ネイティブオーディオサポートに関して、タブに何かが欠けていると思いますか?

ありがとう、アルフ

0 投票する
2 に答える
2762 参照

android-ndk - Android NDK アプリの起動エラー

起動時にクラッシュする NativeActivity を作成しました。これは、(私の理論では...) AndroidManifest.xml で共有ライブラリやモジュール、または何かに名前を付けるのが間違っているためです。以下は、アプリを起動したときの LogCat の出力と、マニフェスト ファイルの内容です。

これを設定する際に間違ったアイデアはありますか?

ありがとう、アルフ

===================マニフェスト============================= ===============

===================LOGCAT出力============================ ================

07-31 23:13:11.770: WARN/dalvikvm(1384): threadid=1: キャッチされない例外で終了するスレッド (group=0x4016d760) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): 致命的な例外: メイン07-31 23:13:11.780: エラー/AndroidRuntime(1384): java.lang.RuntimeException: アクティビティを開始できません ComponentInfo{com.Mythica.SpiderGame/android.app.NativeActivity}: java.lang.IllegalArgumentException: ロードできませんネイティブ ライブラリ: /data/data/com.Mythica.SpiderGame/lib/libSpiderGame.so 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): Android で。 app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.app.ActivityThread.access$1500(ActivityThread.java:122) で 07-31 23:13 :11.780: エラー/AndroidRuntime(1384): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.os.Handler で。 dispatchMessage(Handler.java:99) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.os.Looper.loop(Looper.java:132) 07-31 23:13:11.780: エラー/ AndroidRuntime (1384): android.app.ActivityThread.main (ActivityThread.java:4028) 07-31 23:13:11.780:エラー/AndroidRuntime(1384): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): java.lang.reflect.Method.invoke(Method. java:491) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 07-31 23:13:11.780:エラー/AndroidRuntime(1384): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): dalvik.system.NativeStart.main で(ネイティブ メソッド) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): 原因: java.lang.IllegalArgumentException: ネイティブ ライブラリを読み込めません: /data/data/com.Mythica.SpiderGame/lib/libSpiderGame。そう 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.app.NativeActivity.onCreate(NativeActivity.java:199) 07-31 23:13:11 で。780: エラー/AndroidRuntime(1384): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 07-31 23:13:11.780: エラー/AndroidRuntime(1384): android.app.ActivityThread.performLaunchActivity(ActivityThread) .java:1715) 07-31 23:13:11.780: ERROR/AndroidRuntime(1384): ... 11 more 07-31 23:13:11.780: WARN/ActivityManager(288): 強制終了アクティビティ com.Mythica.SpiderGame /android.app.NativeActivity 07-31 23:13:11.800: エラー/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_errorWARN/ActivityManager(288): 強制終了アクティビティ com.Mythica.SpiderGame/android.app.NativeActivity 07-31 23:13:11.800: ERROR/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_errorWARN/ActivityManager(288): 強制終了アクティビティ com.Mythica.SpiderGame/android.app.NativeActivity 07-31 23:13:11.800: ERROR/android.os.Debug(288): Dumpstate > /data/log/dumpstate_app_error

0 投票する
1 に答える
1087 参照

workflow-foundation-4 - カスタム イベントが発生するたびにフローを実行する

ワークフロー

Watch filesがイベントを発生させるたびにShow created file nameを実行する必要があります

WatchFilesActivity : NativeActivity

拡大

これはうまく機能していますが、一度だけで、その後ホストが閉じます。

連続した非常に高速なファイル作成を処理する必要があり、着信ファイルの処理時間 (この場合は作成されたファイル名を表示) がファイル作成速度よりも大きいため、WhileActivity を配置できません。

ありがとう!

0 投票する
1 に答える
4713 参照

android - NativeActivityからコンテキストを取得する

NativeActivityを使用するアプリケーションがあります。コンテキストを必要とする何かを実行するためにJavaを呼び出したい(たとえば、TelephonyManagerにアクセスしてIMEIを照会する)。

アクティビティの有効なコンテキストを取得するにはどうすればよいですか?

ANativeActivity構造には、JavaVMやJNI環境など、アプリケーションに役立つさまざまなデータが含まれています。また、NativeActivityのクラスオブジェクトを指すジョブジェクトも含まれています。含まれていないのは、NativeActivityのインスタンスを指すジョブジェクトです。でも、役に立つものは何も見当たりませんstruct android_app

これを行うことが可能でなければなりません。どのようにアイデアはありますか?

0 投票する
2 に答える
658 参照

android - アクティビティの各インスタンスを独自のプロセスで実行していますか?

NDK を使用して Android で実行しているサードパーティのネイティブ コードの大きな塊があります。このコードにはグローバル変数が含まれているため、プロセスごとに 1 つのセッションのみがサポートされます。(Android に、共有ライブラリの複数のインスタンスを同じプロセスにロードする魔法のような方法がない限り。)

複数のアクティビティを同時に実行できる必要があります。これは、各アクティビティが異なるプロセスで実行される必要があることを意味します。これを行う方法を知っている人はいますか?

プロセス アフィニティはここでは役に立たないことに注意してください。これにより、単一の Activity クラスのすべてのインスタンスが内部で実行される単一の名前付きプロセスを指定できるようになります。ここで必要なのは、Activity クラスの複数のインスタンスをそれぞれ独自のプロセスで実行することです。

私はジンジャーブレッド(またはそれ以上)を使用しています。これを機能させるための不正なハックを喜んで検討します...

(また: 厄介に聞こえるかもしれませんが、なぜこれが悪い考えなのかを説明しないでください。別のことを行う必要があります。外部要件が間違っていると言っても、外部要件を満たすのに役立ちません...)

0 投票する
3 に答える
2245 参照

android - Android ネイティブ アクティビティで OpenCV2.3.1 を使用する際の問題

Android 用のコンピューター ビジョン アプリケーションを開発しています。その作業にはできるだけ早くカメラ フレームを取得する必要があるため、「android_native_app_glue」と「libnative_camera」を使用して C++ で Android アプリケーションを直接ビルドしてカメラ フレームを取得しようとしています。互換性がないようです。

2つのオプションをテストしました。

  1. Android NDK サンプル "NativeActivity" で OpenCV を使用しようとしましたが、必要な変更をいくつか加えるだけです (サンプルを C++ に変換し、android.mk と application.mk を変更し、名前空間とインクルードの使用を含めます)。次のエラーが発生します。

sharedLibrary : libnative-activity.so C:/Development/android-opencv-wsp/samples/native-activity/obj/local/armeabi-v7a/objs/native-activity/main.o: 関数~Mat': C:\Development\android-opencv-wsp\samples\native-activity/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference to内 cv::fastFree(void *)' 等々

  1. OpenCV2.3.1チュートリアル3のサンプルでネイティブアクティビティを作るために必要なライブラリをインポートしてみました。私は単に Android.mk を変更して追加しました:

LOCAL_STATIC_LIBRARIES := android_native_app_glue

この行を追加するとすぐに、次のエラーが表示されます: SharedLibrary : libnative_sample.so C:/Development/android-opencv-wsp/samples/tutorial-3-native/obj/local/armeabi-v7a/objs/native_sample/ jni_part.o: 関数~Mat': C:\Development\android-opencv-wsp\samples\tutorial-3-native/../../OpenCV-2.3.1/share/OpenCV/../../include/opencv2/core/mat.hpp:297: undefined reference to内 cv::fastFree(void*)' など...

カメラ フレームを取得するために、openCV2.3.1 と libnative_camera を使用して純粋なネイティブ アクティビティをテストした人はいますか?

前もって感謝します。

0 投票する
1 に答える
350 参照

android - Android NativeActivity でトラックボール イベントを受け取る

トラックボール イベントを受け取りたい NativeActivity ベースのアプリケーションがあります。

(大雑把な) ドキュメントによると、これらはstruct android_apponInputEvent()コールバックを介して受け取る必要があります。これは、キー イベントとモーション イベントの場合と同じです。しかし、私は何も得ていません。トレースを見ると、イベントはグルー レイヤーに送信されますが、明らかにAInputQueue_preDispatchEvent()inの呼び出しによって消費されるprocess_input()ため、アプリケーションには配信されません。

NativeActivity で動作するトラックボール イベントを取得した人はいますか?

0 投票する
5 に答える
8572 参照

android - C++ と NativeActivity クラスを使用して Android APK の名前を取得する

NDK と NativeActivity を使用して Android アプリを作成しています。私のアプリは、アセットとして出荷されたいくつかのサードパーティ コードに依存しています。現在、フォルダー構造をそのまま維持しながら、これらのアセットを抽出しようと取り組んでいます。

私は AssetManager を使用してみましたが、フォルダー構造をそのまま維持するために、私が言及したような単純なタスクには、膨大な量のコードが必要になるように思われました。それ以来、APK を ZIP ファイルとして扱う実装を試み、その内容をそのように抽出することに焦点を切り替えました。しかし、それには APK への正確なパスを見つける必要があります。

通常の Android アプリでは getPackageCodePath を使用しますが、これは Context クラスにアタッチされた抽象メソッドです。私の質問は、通常のアクティビティを使用していないときに APK への正確なパスを取得するにはどうすればよいですか?

また、JNI 経由で getPackageCodePath を呼び出してみましたが、メソッドが見つからないためにアプリがクラッシュしました。

編集:これは可能ですか?