Androidアプリケーションでいくつかのネイティブライブラリの場所を指定する必要があります。私はハードコードされた文字列でこれを達成していました:
public static final String DLL_DIR_STR = "/data/data/my.application.package/lib";
しかし、代わりにAndroidからパスを取得したかった。このような投稿に続いて、getDir()を使用してlibディレクトリを検索し、変更しました
superCollider = new SCAudio(DLL_DIR_STR);
に
superCollider = new SCAudio(container.$context().getDir("lib", 0).getAbsolutePath());
奇妙なことに、初期ライブラリは正しくロードされているようです
Trying to load lib /data/data/my.application.package/lib/libsndfile.so 0x42718d80
Added shared lib /data/data/my.application.package/lib/libsndfile.so 0x42718d80
No JNI_OnLoad found in /data/data/my.application.package/lib/libsndfile.so 0x42718d80, skipping init
Trying to load lib /data/data/my.application.package/lib/libscsynth.so 0x42718d80
Added shared lib /data/data/my.application.package/lib/libscsynth.so 0x42718d80
しかし、libscsynthが追加のコードを読み込もうとすると、間違ったパスが使用されます。
OK, listing opendir(/data/data/my.application.package/app_lib)
「app_」の由来は何か考えはありますか?getDir()を間違って使用しているに違いないと思いましたが、初期ファイルは正常にロードされます。それはネイティブコードの何かでしょうか?ご協力いただきありがとうございます。