問題タブ [android-native-library]

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 に答える
359 参照

android - Android Studio での C++/ネイティブ コードのデバッグが、古い Android SDK API バージョンでは機能しない

一般的な問題

2 つの異なる API バージョン (23 (マシュマロ) と 28 (パイ)) を対象とする Android ネイティブ アプリケーションがあります。API 28 の場合、Hello World アプリケーションが C++ コードに入るときに問題なくデバッグできます。デバッガーはそれ自体をアタッチし、ブレークポイントで実行を停止します。ただし、API 23 の場合、デバッガーはそれ自体をアタッチしますが、ブレークポイントで停止することはありません。両方の API のこの動作は、エミュレーターと実際のデバイス間で一貫しています。

バージョン

  • ウィンドウズ10
  • アンドロイドスタジオ 4.1.1
  • グラドル 6.5
  • NDK 21.1.6352462
  • CMake 3.10.2.4988404

エミュレータ比較

API 23

  • ギャラクシー ネクサス 4.65 720x1280
  • Android 6.0 x86_64 (マシュマロ)

API 28

  • ギャラクシー ネクサス 4.65 720x1280
  • Android 9.0 x86_64 (パイ)

ここでの唯一の違いは、実際にはオペレーティング システムです。メモリ割り当てを含む他のすべてはまったく同じようです。

コード

どちらの場合もコードは同じです。これは、Android が提供するデフォルトの JNI テンプレートにほぼ準拠しています。とにかく全部載せます。

ルート build.gradle :

アプリケーション build.gradle :

AndroidManifest.xml :

MainActivity.java :

ネイティブ lib.cpp :

CMakeList.txt :

誰かが助けを惜しまないなら、それは大歓迎です!

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

android - ネイティブ ライブラリを使用した Android - CDC USB デバイスとのインターフェイス - ネイティブ ライブラリで fd を使用できません

AndroidタブレットをUSBデバイス(STM32 Nucleo)と通信させようとしています。私はgithubで利用可能なスケッチを開発しました:

  • モバイル アプリケーションは Xamarin と VS Studio で開発されています。USBホストとして機能します
  • STM32 Nucleo アプリケーションは STMCube で開発され、その USB スタックを使用して CDC デバイスとして機能します。
  • 「登録」ID/値を交換するための小さなマスター/スレーブプロトコルを開発しました。デバイスはスレーブです。

Android.hardware.usb API を使用して動作させることができました。しかし、他のプラットフォームで使用されているように、ネイティブ C 共有オブジェクト ライブラリを通信に使用する必要があり、それが現在問題になっています。swig を使用してライブラリを埋め込み、VS Studio でビルドします。ライブラリがデバイスと通信するようにするには、次の 2 つの方法を試しました。

  • Android 側から許可と fd を取得し、標準の読み取り/書き込み操作を行うライブラリに渡します。
  • Android から上記と同じことを行いますが、Linux の usbdevice_fs API を使用してバルク転送を呼び出すエンドポイント番号も fd で渡します。その質問で提示したような多かれ少なかれ。

どちらの方法も失敗し、存在しない fd に関するエラーが返されます。fd と enpoints の値を確認しましたが、Android と同じです。Android USB デバイス モニターを起動しましたが、作成した fd が見つかりません。termux のような Android シェルを使用して、プロセス /proc ツリーを一覧表示することはできません。それでも、Android 側で tehm を使用できます。

コミュニティから、fd をネイティブ ライブラリに渡すことが正しい方法であることを確認しました。私は今何をすべきかわかりません。他に許可を求めることはできますか?

以下は、 fd を取得する方法です。

ネイティブ ライブラリの使用に失敗したモバイル アプリケーションのキャプチャ

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

actionscript-3 - Gearsandcogs 拡張機能は最新の AIR バージョン 32.0 以降でも機能しますか?

パッケージcom.gearsandcogs.air.extensionsを使用してAS3にプロジェクトがあります。ネイティブ Android APK をコンパイルしようとすると、次のエラーが表示されます。

「アプリケーションで必要なネイティブ拡張 'com.gearsandcogs.air.extensions.PackageManager' の実装が、ターゲット プラットフォームで見つかりませんでした。」

説明 XML で:

「extensionID」をコメントすると、apk がエラーなしでコンパイルされます。

これまたは他の PackageManager の代替案を解決するための提案はありますか?

VSCode+ActionScript & MXML 拡張機能を備えた Harman SDK 33.1

ありがとう!よろしく!