問題タブ [android-ndk]
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.
c++ - Android: libstdc++ に対して静的にリンクする
私のプログラムは Android 用に適切にコンパイルされますが、Android エミュレーターにコピーしようとすると、次のエラーが発生します。
acpy
私が書いた小さなスクリプトで、次のことを行います。
アプリケーションをビルドする方法は次のとおりです。
改行はわかりやすくするためだけのもので、実際の出力には存在しません。
YoghurtGum は、既に静的および動的に にリンクしている私のゲーム ライブラリですlibstdc++
。
を削除するlstdc++
と、ライブラリが見つからないため、プログラムはコンパイルされません。
stdlibc++
エミュレーターで静的にリンクする方法、またはアプリケーションを正しい動的ライブラリーにリンクする方法はありますか?
前もって感謝します。
c++ - SymbianC++をAndroidNDKに移植する
AndroidNDKで使用するために移植するためのSymbianC++コードがいくつか提供されています。
このコードにはSymbian固有のコードがたくさん含まれており、C ++の経験がほとんどないため、うまくいきません。
私を遅くしている主なことは、Symbian固有のコードの通常のC++で使用する代替案を見つけようとしていることです。
その瞬間、コンパイラは認識されないタイプに対してあらゆる種類のエラーをスローします。
私の最近の調査から、これらはSymbian固有であると私が信じているタイプです。
TInt、TBool、TDesc8、RSocket、TInetAddress、TBuf、HBufc、RPointerArray
TIntとTBoolをそれぞれintとboolに変更すると、コンパイラで機能しますが、他のタイプに何を使用すればよいかわかりません。
誰かが私を助けてくれますか?特にTDesc、TBuf、HBuf、RPointerArray。
また、Symbianには2フェーズのコンストラクターがあります。
NewL
と
NewLc
しかし、これを通常のC ++コンストラクターに変更しても大丈夫でしょうか?
最後に、Symbianはクリーンアップスタックを使用してメモリリークを排除します。クリーンアップスタックコードを削除しても問題ありません。try/ catchステートメントに置き換える必要があると思いますか?
java - Android でローミング中にインターネットをブロックする安全なアプリケーションを実装することは可能ですか?
電話がローミング中かどうかを確認するアプリケーションを開発する必要があります。ローミング中の場合、アプリケーションは、ホワイト リストのいくつかを除くすべてのアプリケーションのインターネットをブロックする必要があります。非ローミング モードでは、すべての要求を許可する必要があります。ユーザーがアプリケーションを強制終了または一時停止したり、インターネットをオンにしたりする方法はありません。
私はAndroidにあまり詳しくないので、OSを変更せずに実装できるかどうかはわかりません。これを行う方法はありますか?
android - stdexcept Android の場合
AndroidでSoundTouchをコンパイルしようとしています。私はこのconfigure行から始めました:
./configure CPPFLAGS="-I/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/include/" LDFLAGS="-Wl,-rpath-link=/ボリューム/android-build/mydroid/development/ndk/build/platforms/android-3/arch-arm/usr/lib -L/Volumes/android-build/mydroid/development/ndk/build/platforms/android-3/ arch-arm/usr/lib -nostdlib -lc" --host=arm-eabi --enable-shared=yes CFLAGS="-nostdlib -O3 -mandroid" host_alias=arm-eabi --no-create --no-再帰
Android NDK は ARM をターゲットにしているため、進行するには Makefile を変更して -msse2 フラグを削除する必要もありました。
「make」を実行すると、次のようになります。
-nostdlib フラグが必要だったので、これはそれほど驚くべきことではありません。Android には stdexcept も stdlib もないようです。 SoundTouch をコンパイルするこのブロックをどのように通過できますか?
推測では、私が使用する必要があることを知らないフラグがあるかもしれません。stdexcept を使用しないようにコードをリファクタリングできます。元の stdexcept ソースを取得して参照する方法があるかもしれません。コンパイル済みの stdexcept ライブラリにリンクできるかもしれません。
android - crtbegin.o および crtbegin_dynamic.o とは何ですか?
Android x86 ツールチェーンを使用してリンク エラー ( undefined reference to _dso_handle
) をデバッグすると、静的にリンクしていることに気付きましたcrtbegin_dynamic.o
。このファイルの目的は何ですか? crtbegin.o
ツールチェーンのインストール ディレクトリには、不足しているシンボル (_dso_handle) を含む別の同様のファイルがあります。crtbegin.o と crtbegin_dynamic.o の違いは何ですか?
android - C++ アプリケーションの Android への移植
STL を多用する C++ アプリケーションを Android に移植することはできますか? 現在、NDK がこれをサポートしていないことは理解していますが、これを実現するための取り組み (オープン ソースまたはその他) は行われていますか?
そうでない場合、Android 用に libstdc++ をクロスコンパイルする方法はありますか?
更新: Ndk Revision 5 は、STLport に基づくデフォルトの STL 実装を約束します。 http://android-developers.blogspot.com/2011/01/gingerbread-ndk-awesomeness.html NDK の公式ブログ投稿http://developer.android.com/sdk/ndk/index.htmlをお読みください。リビジョンノート。
android - スレッド間で pthread_t を malloc/free するときの障害アドレス
新しく作成されたスレッド ID を保存し、別のスレッドで解放するために pthread_t を malloc すると、障害アドレスが発生しました。コードは次のとおりです。
TaskInfo のメンバー dummy_int のコメントを外すと、正常に実行されることもあれば、失敗することもありました。私のプラットフォームは VMWare + Ubuntu 9.10 + ndk r3 です
ありがとう!
c++ - 基本的な C++ でシステム ティック カウントを取得しますか?
私は本質的に getTickCount() ウィンドウ関数を再構築したいので、非標準ライブラリやSTLさえも使わずに基本的なC++で使用できます。(したがって、Android NDK で提供されるライブラリに準拠しています)
私は見てきた
時計()
現地時間
時間
しかし、時間ライブラリを使用して getTickCount ウィンドウ関数を複製できるかどうかはまだわかりません。
これを行う方法、または可能である場合でも、誰かが私を正しい方向に向けることができますか?
私がやりたいことの概要:
アプリケーションが特定の機能を「実行」している時間を計算できるようにしたいと考えています。
たとえば、アプリケーションがサーバーに登録しようとしている時間を計算できるようにしたい
LinuxベースのAndroidで実行するためにWindowsから移植しようとしています.Windowsコードは次のとおりです。
android - Androidで名前付きパイプ(mkfifo)を作成するには?
Android で名前付きパイプを作成する際に問題が発生しました。以下の例は私のジレンマを示しています。
コードは常に次を出力します。
なぜこれが失敗するのか正確にはわかりません。アプリケーションには android.permission.WRITE_EXTERNAL_STORAGE 権限があります。同じ場所にまったく同じ名前の通常のファイルを作成できますが、パイプの作成に失敗します。問題のパイプは、複数のアプリケーションからアクセスできる必要があります。
- /sdcard にパイプを作成できる人はいないと思います。そうするのに最適な場所はどこですか?
- どのモード マストを設定すればよいですか (2 番目のパラメーター)?
- アプリケーションには追加のアクセス許可が必要ですか?
c++ - GCC: 単純な継承テストが失敗する
YoghurtGum というオープン ソースの 2D ゲーム エンジンを構築しています。現在、Google が提供する NDK を使用して、Android への移植に取り組んでいます。
アプリケーションでエラーが発生していたので気が狂いそうになったので、簡単なテスト プログラムを作成しました。
簡単そうですよね?コンパイル方法は次のとおりです。これは、残りのコードをコンパイルする方法と同じです。
(わかりやすくするために改行が追加されています)。これはうまくコンパイルされます。しかし、次にリンカーに行きます。
おそらくおわかりのように、実際には必要のない粗雑な作業がたくさんあります。それはうまくいかないからです。次のエラーで失敗します。
これらは、実際のアプリケーションで発生するエラーと同じです。
テストでどこが間違っていたのか、どのオプションが間違っていたのか、リンカで忘れていたのかを誰かが説明してくれたら、非常に感謝しています。
前もって感謝します。
アップデート:
デストラクタを非インライン化すると、新しくてエキサイティングなリンク エラーが発生します。