タグ付けされた質問 「android-ndk」

Android Native Development Kit(NDK)は、Android SDKのコンパニオンツールであり、アプリのパフォーマンスが重要な部分をネイティブコードで構築したり、C / C ++の既存のライブラリをAndroidに移植したりできます。C / C ++でプログラミングするときに、アクティビティの構築、ユーザー入力の処理、ハードウェアセンサーの使用、アプリケーションリソースへのアクセスなどを可能にするヘッダーとライブラリを提供します。

11
Android NDK C ++ JNI(ネイティブの実装が見つかりません…)
C ++でNDKを使用しようとしていますが、メソッドの命名規則を正しく取得できないようです。私のネイティブメソッドは次のとおりです。 extern "C" { JNIEXPORT void JNICALL Java_com_test_jnitest_SurfaceRenderer_drawFromJni (JNIEnv* env, jclass c) { // } } extern "C" {} asloでラップされたヘッダー付き。 すべてが正常にコンパイルされ、.soファイルが作成され、プロジェクトの下のlibsフォルダーにコピーされますが、Eclipseでデバッグして実行すると、「ネイティブの実装が見つかりません...」というログキャットメッセージが表示され続けます。すべてのNDKの例がCであるため、不足しているものはありますか? ありがとう。


8
AndroidNDKにベクターのようなC ++ヘッダーを含めることはできません
ベクターのようなC ++クラスをAndroidNDKプロジェクトに(最新のNDK r5bを使用して)含めようとすると、次のようなエラーが発生します... Compile++ thumb : test-libstl <= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory この問題をオンラインで報告した他の人々は、追加することによって成功を主張しています APP_STL := stlport_static Application.mkファイルに。私はこれを実行し、APP_STLの他のすべての可能な値を試しました。プロジェクトをクリーンアップし、ndk-build cleanを実行し、objフォルダーとlibsフォルダーを削除しましたが、コンパイルしてもベクタークラスが見つかりません。私はこれに数週間取り組んできました(NDK r5がリリースされてから)。誰かアドバイスがあれば本当にありがたいです。ありがとう!

5
初心者向けのAndroidNDKチュートリアル/ガイド。[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 6年前に閉鎖されました。 この質問を改善する 私はAndroidNDKから始めています。私を案内するのに良い場所/電子ブックはありますか?ありがとう

2
Android AudioRecordは、MICオーディオソースに別のストリームを強制します
更新3:私は別の開発者と提携しましたが、多額のお金でこれを実行できる人を見つけたようです。彼らは私たちにテストapkを送ってくれました、そしてそれはうまくいくようです。先に進んでソースを購入します。詐欺に遭わないことを願っています。わかったら更新します アップデート2:まだ作業中です。もっと辛い日々を過ごした後、私は今、何も派手なことは起こっていないと思いますが、彼らは単にネイティブ側でAudioFlinger(リンクを参照)を使用してAudioFlinger :: setParametersを呼び出しています 私は今、audio_io_handle_t ioHandle、const String8&keyValuePairsを使用してAudioFlinger :: setParametersを呼び出す簡単なJNIを作成する方法を探しています。 keyValuePairsが何であるかは知っていますが、audio_io_handle_tについての手がかりはありません 更新:他のアプリがCAFでQCOMオーディオを使用している可能性があると思います。同じものについては、リンクのaudio_extn_utils_send_audio_calibrationを参照してください と同じリンクのvoice_get_incall_rec_snd_device 私はC / ++の知識がありません。これらのメソッドをネイティブ側から呼び出すことができるかどうかを確認するにはどうすればよいですか?他のアプリでもできるので、方法が必要です。 私はこれに40日以上、少なくとも1日5〜6時間苦労してきました。SOで許可されているかどうかはわかりませんが、正解も喜んで寄付させていただきます。 VOICE_CALLオーディオソースを使用する通話録音アプリがあります。ASOPはそれを実装/義務付けていませんが、ほとんどのメーカーはVOICE_CALLを実装しており、VOICE_CALLオーディオソースを使用するアプリは多くのデバイスで正常に機能しました。それはAndroid6までです。 GoogleはAndroid6でこの動作を変更しました。VOICE_CALLオーディオソースを開くには、システムアプリケーションにのみ付与されるandroid.permission.CAPTURE_AUDIO_OUTPUTが必要になりました。 これは基本的に通話の録音を停止します。まあ、それはこの制限を回避する方法を見つけた3人を除いて私のものと200以上の他の通話録音アプリのためにあります。 私はAndroid6を搭載したさまざまな携帯電話でこれらのアプリを試してきましたが、記録方法に特定の特徴があることがわかりました。 それらはすべてAndroidAudioRecordクラスを使用し、MICオーディオソースを開きます。私も; しかし、私のアプリでは、MICからのみ音声を取得し、相手からは取得しません。私が見つけたのは、彼らが録音を開始した直後または開始する前に、ある種のシステムコールを発行しているということです。 MICを使用して録音しているにもかかわらず、VOICE_CALLを正常に録音したアプリの1つから、次のログを確認してください。アプリは、VOICE_CALLオーディオソースをMICにミックス/ルーティング/ストリーム/マージする方法のようです。 - D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=1;routing=-2147483644 - D/PermissionCache: checking android.permission.MODIFY_AUDIO_SETTINGS for uid=10286 => granted (432 us) - D/audio_hw_primary: in_set_parameters: enter: kvpairs=input_source=4;routing=-2147483584;format=1 - D/audio_hw_primary: select_devices: out_snd_device(0: ) in_snd_device(283: voice-dmic-ef) …

6
Android:要求されたバージョンに一致するNDKのバージョンはありません
Android Gradleプラグイン 3.6.0(2020年2月24日リリース)に更新した後、いくつかのプロジェクトが独立して失敗し始めました。 No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669 古い予想されるndkバージョンをインストールすることで、これをローカルで「修正」するのは非常に簡単です。 sdkmanager 'ndk;20.0.5594570' しかし、私の質問は、この古いバージョンはどこでどのように指定されているのですか?また、最新バージョンに一致するように更新するにはどうすればよい21.0.6113669ですか?

4
新しいセキュリティのため、Catalinaのアップグレード後に古いNDK(android-ndk-r17c)を使用できません
macOS Catalinaにアップグレードした後、私のプロジェクトはビルドできなくなります。これは、「android-ndk-r17c」のバイナリが信頼できる開発者からのものではないとCatalinaが信じているためです。 「開発者を確認できないため、「ld」を開くことができません。」などのメッセージが表示されます。「macOSはこのアプリにマルウェアがないことを確認できません」 ネイティブのopenCVライブラリSDKと新しいNDKの問題のため、古いNDKを使用する必要があります。彼らはそれに取り組んでいますが、新しいSDKはまだ十分に安定していません。 「clang」と「clang ++」が機能しないことを回避するには、セキュリティペインに移動し、セキュリティアラートで[Allow Anyway]をクリックします。しかし、これを「Id」で試してみると、「Allow Anyway」をクリックして最初の警告を回避できますが、後で呼び出されるようで、その後の呼び出しでは開くことを許可するオプションがありません。 実際にはコードはありません。私は、Android Studio NDKリファレンスを持っているだけで(長い間持っていました)、設定を介して古いNDKを参照しています。 NDKのIDEでは、「Id」の読み込みに失敗します。 「開発者を確認できないため、「ld」を開くことができません。」「macOSはこのアプリにマルウェアがないことを確認できません」

1
Crashlyticsがネイティブクラッシュを表示しない
これが重複としてマークされる前に、考えられるすべての質問からすべてを試しました。Javaのクラッシュは適切に報告されますが、ネイティブライブラリからのクラッシュにはデバッグシンボルがありません。 私が試したこと: ./gradlew crashlyticsUploadSymbolsDevDebug // to upload the symbols manually androidNdkOut 'build/intermediates/ndkBuild/devDebug/obj/local' //specify the ndk paths manually androidNdkLibsOut 'build/intermediates/merged_native_libs/devDebug/out/lib'` //specify the ndk paths manually 現在の設定: 依存関係: implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { transitive = true } implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1' android.applicationVariants.all { variant -> def variantName = variant.name.capitalize() def task = task("ndkbuild${variantName}") task.finalizedBy("crashlyticsUploadSymbols${variantName}") } crashlytics { …

1
Androidでjava.lang.NullPointerExceptionを取得する
ndkのクラッシュにFirebase crashlyticsベータ版を使用しています。ここに記載されているすべての手順に従います。しかし、問題が発生し、シンボルファイルをアップロードできません。私がタスクを実行しようとするときはいつでも./gradlew uploadCrashlyticsSymbolFileDebug --stacktraceそれは言うjava.lang.NullPointerException。しかし、なぜ、どこでnullになるのでしょうか。 これがこのタスクの完全なスタックトレースです > Task :app:generateCrashlyticsSymbolFileDebug FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:generateCrashlyticsSymbolFileDebug'. > java.lang.NullPointerException (no error message) * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. * …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.