私はいくつかのライブラリ(ネイティブライブラリ(.so
)を含むaar
)をChromium(詳細についてはSnapdragon最適化フォーク)に統合しようとしています。私はchrome/android/BUILD.gn
を変更し、2つの依存関係を追加する必要がありましたAndroidのコードでそれを使用するためにはChromiumの依存関係として、ネイティブライブラリでアンドロイドライブラリを使用するにはどうすればよいですか?
:
deps = [
...
"//third_party/libxyz_android:libxyz_android",
"//third_party/libxyz_android:libxyz_android_settings",
...
]
だから私は、third_party/libxyz
ディレクトリを作成してそこにAARファイルを入れて、BUILD.gn
を作成する必要がありました:
import("//build/config/android/rules.gni")
android_aar_prebuilt("libxyz_android") {
aar_path = "libxyz-android-release.aar"
# proguard_configs = [ "src/proguard-gvr.txt" ]
ignore_manifest = true # Ignored because manifest merging is not supported (http://crbug.com/643967)
ignore_native_libraries = false
}
android_aar_prebuilt("libxyz_android_settings") {
aar_path = "libxyz-android-settings-release.aar"
ignore_manifest = true # Ignored because manifest merging is not supported (http://crbug.com/643967)
}
メモignore_native_libraries = false
にはlibxyzにネイティブライブラリがあります。
クロム私の建物はエラーを得ながら:
android_aar_prebuilt() with .so files is not supported. Use ignore_native_libraries = true to silence this error.
それはここから来ている: https://chromium.googlesource.com/chromium/src/build/config/+/master/android/rules.gni#2817
assert(_ignore_native_libraries || !_scanned_files.has_native_libraries, ...
は、ネイティブライブラリとaar
を使用するすべての可能性は、いくつかの回避策はありかrules.gni
を修正?私が自分でサポートを追加する必要がある場合 - rules.gni
を編集して、ネイティブライブラリを解凍してaar
のコピー先のディレクトリにコピーする必要があります(これはかなりシンプルなようです)。
更新1:ターゲット名のエラー( " - "はサポートされていません)のため、ターゲット名を変更して " - "を "_"に置き換えなければなりませんでした。
これを把握しましたか? – Hades
はい、サポートを追加するために 'android_rules.gni'をハックする必要がありました – 4ntoine
あなたのソリューションを投稿できますか? – Hades