問題タブ [ndk-build]
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.
android - ndk-build でビルドされた Android Studio ライブラリが実行時に更新されない
現在、NDK がサポートされているため、プロジェクトに android studio を使用していますが、gradle を使用してもできないことがまだあるため、makefile を使用しています。
端末で ndk-build を使用してソース c/cpp ファイルをコンパイルしますが、後で Android Studio で実行すると、「ビルド」->「再構築プロジェクト」を実行するまで変更が APK にパッケージ化されません (古い.so ファイル)。
コンパイルされた .so ファイルは、jniLibs/${arch} フォルダーに配置されます。
gradle にコンパイル済みの so ファイルを強制的に再パッケージ化する方法、または「再構築されたプロジェクト」を強制する方法はありますか。
前もって感謝します。
android-ndk - ビルドがトリガーされている libs フォルダーのみを ndk-build に削除させる方法
を持っているファイルと を持ってApplication.mk
いるファイルの 2 つがAPP_ABI := armeabi armeabi-v7a
ありますAPP_ABI := x86
。これを行う理由は、常に X86 プラットフォーム用にビルドしたいわけではなく、特定の条件が満たされた場合にのみビルドしたいからです。そのため、arm ビルドはシェル スクリプトによって無条件にトリガーndk-build
され、条件が満たされた場合に X86 に対して再度トリガーされます。私が直面している問題は、ndk-build がトリガーされるたびに次のことを行うことです
rm -f ./libs/arm64-v8a/lib*.so ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/armeabi-v7a-hard/lib*.so ./libs/mips/lib*.so ./libs/mips64/lib*.so ./libs/x86/lib*.so ./libs/x86_64/lib*.so
。X86 ビルドがトリガーされ、ビルドが完了するとarmeabi
、armeabi-v7a
libs フォルダーが削除されます。ndk-build は、現在ターゲットとしている libs フォルダーのみを削除すべきではありませんAPP_ABI
か? そうでない場合、これを回避する方法はありますか?
build-all.mk
NDKディストリビューションには、clean: clean-intermediates clean-installed-binaries
すべてのライブラリをクリーンアップしている可能性があるこれがあると思います。
android - オープンソースの JniLib を独自の Android プロジェクトに組み込む
ネイティブ コーディングを含むデモ アプリのソース コードがあります。そのコードの一部を自分のアプリに統合したいと思います。
コードの構造は次のとおりです。
ネイティブ コードには、次のように、アプリのパッケージ名に固有の部分がいくつかあるようですcaffe_jni.cpp
。
アプリから呼び出すことができるように、これらの名前をリファクタリングするにはどうすればよいですcom.myUsername
か? または、別のアプリのコードを Android Studio に含める別の方法はありますか?
android-studio - Build:Gradle:2.1.0 を使用して Android Studio に .so を含める
同様の質問がたくさんあることは知っていますが、単に理解できません。
build.gradle 内に ndk-build を統合できましたが、.apk に .so を含めることができないようです。これが私のbuild.graldeです:
これにより、次のディレクトリ構造が得られます。
p>私のアプリの実行時にjava.lang.UnsatisfiedLinkError:
、ネイティブ関数を呼び出すと...
私は次のような多くのことを見つけました:
しかし、私にはそれが理解できず、ネイティブ コードの .jar アーカイブを作成する必要はないと感じています。または、何かを完全に見逃していますか?前もって感謝します!