問題タブ [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 に答える
3952 参照

android - NativeActivityのコンテンツビューをJavaで作成されたコンポーネントに設定する方法

NativeActivityのコンテンツをJavaで作成されたコンポーネント(FrameLayout、ImageViewなど)に設定する方法はありますか?(Xperia Playでタッチパッド入力を取得するために)NativeActivityを使用する必要がありますが、Javaコードで作成されたコンポーネントを表示できる必要もあります。

onCreateコマンドをオーバーライドして、そこでsetContentViewを呼び出してみましたが、エラーは発生しませんが、何も実行されません(コンテンツビューがネイティブコードによって既に設定されているためと思われます)。コンテンツビューがどうあるべきかを伝えるためにネイティブコードに渡すことができるある種のウィンドウIDまたは何かがありますか、またはこれをXMLで設定して、NativeActivityのコンテンツビューを変更可能なコンポーネントに設定できますか? Javaから?

さらに情報が必要な場合はお知らせください。

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

android - Androidネイティブアクティビティアプリケーションを実行しているIntelliJIDEA

AndroidNDKに付属のネイティブアクティビティサンプルを実行しようとしています。以前はEclipseで正常に実行されていたのを覚えていますが、IntelliJ IDEAでは、実行構成ダイアログから「デフォルトのアクティビティーを起動」を選択すると、「デフォルトのアクティビティーが見つかりません」というエラーが常に表示されます。「android.app.NativeActivity」のようなカスタムアクティビティ名を入力しようとすると、再度見つかりません。

私はEclipseで立ち往生していますか、それともこの問題の回避策はありますか?

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

android - NativeActivity が終了しない

JavaActivity から NativeActivity を呼び出します。私のNativeActivityのエントリポイントは

これの終わりに、私は電話します

ただし、ネイティブ アクティビティは、それを呼び出した Java アクティビティに戻るのではなく、ハングするだけです (単に を使用して呼び出されましたstartActivity)。休止状態のようです。前のアクティビティに戻す唯一の方法exit(0)は、android_main の最後で呼び出すことですが、これによりプロセスが強制終了され、他の問題が発生します。

NativeActivity を正常に終了し、それを呼び出した JavaActivity に戻るにはどうすればよいですか?

0 投票する
0 に答える
390 参照

android - NativeActivity を Service のように動作させる

NativeActivity に基づいて、主にネイティブ コードで記述されたアプリケーションがあります。ほとんどの場合、これはフルスクリーン アクティビティとして実行され、このように問題なく動作します。しかし、1 つの特定のユース ケースでは、バックグラウンドでヘッドレスで実行し、通知とトーストを介してユーザーと通信できるようにする必要があります。

Android でこれを行う慣用的な方法は、Service を使用することです。ただし、コードは必ず NativeActivity でなければならないため、ここではこれを行うことはできません (ネイティブ コードは NativeActivity イベント モデルに依存しているため、質問する前に、いいえ、これを変更することはできません)。

そのため、Activity を強制的に (少なくともユーザーに対して) Service のように動作させる方法が必要です。

私が考えることができる最も悪い方法は、何らかの方法でアクティビティを非表示にして、実行中ですが、ユーザーには表示されないようにすることです。これを行うことになっているメソッド、Activity.setVisible() さえあります。しかし、試してみると、正しく動作していないようです。(アクティビティは表示されますが、空白で、アプリケーションが最初のダイアログを表示すると消えます。違いがある場合、これはハニカム タブレットにあります。)

もちろん、理想的には NativeService を NativeActivity と組み合わせたいのですが、残念ながらそのようなものは存在しないようで、ソース コードから NativeActivity を見ると、NativeService を記述することは非常に簡単ではないように見えます。

提案?

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

android - ネイティブ アクティビティで共有ライブラリを使用する方法

ネイティブ アクティビティを含む Android プロジェクトがあります。このネイティブ アクティビティは、「main」という名前の共有ライブラリ (libmain.so ファイル) を使用して開始します。( ndk/samples/native-activity のコードで)

このアプリは正常に動作します。

「メイン」モジュールの Android.mk ファイル:

ここで、「メイン」ライブラリで使用される別の共有ライブラリ (ゲーム エンジンなど) を追加したいと考えています。「ゲーム」モジュール (libgame.so) を作成しました。

しかし、「メイン」を「ゲーム」にリンクすると、次のようになります。

コードなしで変更なし!
アプリが起動しなくなり、Logcat に次のエラーが表示されます。

このクラッシュは、共有ライブラリへのリンクを追加したことが原因です...

共有ライブラリにリンクするとアプリが読み込まれない (クラッシュする) のはなぜですか?
ネイティブ Android プロジェクト (no-java / native-activity) で共有ライブラリを使用するにはどうすればよいですか?
(可能だと思います...そうでなければ、ネイティブのアクティビティはかなり制限されます...)

ありがとう !:)

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

android - Androidで複数の連絡先を選択する

1 つの連絡先を選択するネイティブ アクティビティを開くためのこのコード セグメントを見たことがあります。

私が興味を持っているのは、メッセージに使用されるアクティビティです Androidでは、メッセージを書いて「add recipient」を押すと、複数の連絡先を選択するアクティビティが得られます。

私のアプリケーションでそのアクティビティを使用する希望はありますか?

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

android - AssetManagerとコピーを使用せずにc++でAndroidAPKアセットデータに直接アクセスする

私はAndroidでゲームエンジンを作成するためにエンジンで純粋なC++を使用しています。単一のJavaファイルはありません。基本的には外部メモリにのみ保存するゲームです。アセットデータをadb経由で外部SDカードに手動で移動すると、ゲームはすでに正常に動作し、安定しています。

配信できないため、これは適切なソリューションではありません。したがって、次の構造でビルドプロセス中にapkファイルに移動されるAssetsフォルダーにassets-dataがあります。

Assets / Data / MoreFolders / Withsubfolders Assets / Data / EngineData.zip Assets / Data / ScriptData.zip

しかし、c++コードでそれらにアクセスするためにそれらのファイルがファイルシステムのどこにあるのかわかりません。

そこで、ファイルディレクトリへのパスを取得しようとしました。また、ネイティブアクティビティ状態のバグのため、通常のコードで情報を取得する必要があります。

android.os.Environment.getFilesDir()およびandroid.os.Environment.getExternalStorageState()に相当するc++コード

これは非常にうまく機能し、結果として

内部パス=/data/data/com.fantasyhaze.rememory/files

CACHE DIR = /data/data/com.fantasyhaze.rememory/cache

外部パス=/mnt/sdcard/Android/data/com.fantasyhaze.rememory/files

ルックアップされたパッケージコードパス=/mnt/asec/com.fantasyhaze.rememory-2/pkg.apk

しかし、アセットフォルダからのファイルはありません...

ファイルを読み取るには、通常の作業ディレクトリとしてフォルダにアクセスする必要があります。これはで可能です

/mnt/sdcard/Android/data/com.fantasyhaze.rememory/files/Data

ただし、すべてのデータをアセットフォルダー(どこにある場合でも)からアセットマネージャーを介してこのフォルダーに移動すると、メモリの消費量が2倍になります。

資産>1GBは、資産> 2GBを意味しますが、これは意味がありません。それ以上に、assertフォルダーは、大きなpakファイルを使用する場合には不可能な小さなデータファイルに対してのみ、効果的に機能しないようです。たぶん、解凍システムを使用しているときにファイルにapkから直接アクセスしてから、リソースファイルをuzipすることができますが、とにかくapkパスを取得する必要があります。

だから私の質問:

  1. ファイルシステムのapkのAssetsフォルダーはどこにありますか?
  2. apkの場所または実行可能ファイルの場所を取得するためのコード(c ++)は何ですか?
  3. 通常のファイルを開く方法で直接アクセスできますか、それとも解凍した場合にのみアクセスできますか。開梱せずに使えるとしたらどうですか?
  4. SDカードがマウントされている場合に情報を取得するためのコード(c ++)は何ですか?

誰かが私を助けてくれることを願っています:)

編集:キャッシュディレクトリとパッケージディレクトリコード(およびその出力パス)を追加して、それを必要とする他のすべての人にソースを提供します。

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

java - Android: calling Java class from C++ Native Activity

Java code:

C source:

it fails with:

Any hint what I'm doing wrong, please?

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

android - Facebook のダイアログが失敗し、アクティビティが停止する

Android で Facebook SDK を使用して、ユーザーのフィードに更新を投稿しています。Facebook クライアントがインストールされていない場合でも、動作させることができました。現在、Facebook アプリを削除した後でも、フィード ダイアログを承認または開こうとすると、アクティビティが突然強制終了されます。

アプリがクラッシュしたなどのメッセージが表示されません。破壊されただけです。唯一のメッセージは、スレッド 0x0 が途中でファイナライズされたことを伝える Mono です。これは奇妙です。また、この奇妙な「このケースではサポートされていません」があります。ウェブコアからのメッセージ。

NativeActivity クラスを使用しています。直接使用することはありませんが、アクティビティで拡張しています。これは、問題が発生した場所のログキャットです。

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

android - Android ネイティブ アクティビティを使用した OpenCV2.4

私は現在、この質問で提示されたものと同じ問題に直面していますが、2.3.1 の代わりに 2.4 バージョンを使用しています。

ネイティブ アクティビティ (ndk サンプルから) を C++ に変換し、android.mk と application.mk を変更しました。

同じエラーがありました(〜Matなど)。

質問への回答を読んだとき、追加する必要があることに気付きましたOPENCV_INSTALL_MODULES:=on and OPENCV_LIB_TYPE:=STATIC(これらの2行を必要としないネイティブopenCVを使用した他のプロジェクトがあるため、これは奇妙です)。

しかし、それはまだ機能していません。

Android.mk は次のとおりです。

次のエラーが表示されます。

見逃したものはありますか?