1

Androidでビデオプレーヤーを開発しています。LGPL ライセンスでコードを使用する必要があるため、ネイティブ ライブラリをどこかに配置する必要があります。

jniLibs をロードするために、私はSystem.load(). プロジェクト構造内のjniLibsフォルダーではすべて正常に動作しますが、別の場所ではプログラムが以下のエラーで終了します。

次のことを行いました:

マニフェスト:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

主な活動:

@Override
protected void onCreate(Bundle savedInstanceState) {

    final String libPath = Environment.getExternalStorageDirectory().getAbsolutePath()  + "/jniLibs/armeabi-v7a/libvlcjni.so";
    final String libPath1 =Environment.getExternalStorageDirectory().getAbsolutePath()+ "/jniLibs/armeabi-v7a/libiomx-ics.so";

    Log.d("path",System.getProperty("java.library.path"));
    Log.d("path",libPath);

    try{
        System.load(libPath);
        System.load(libPath1);
    }catch (Exception ex){
        ex.printStackTrace();
        System.out.println("\n" + ex.getMessage());
        System.out.println("\n" + ex.toString());

        System.out.println("\nTrace info obtained from getStackTrace");
        StackTraceElement[] traceElements = ex.getStackTrace();
        for(int i=0 ; i<traceElements.length ; i++){
            System.out.println("Method" + traceElements[i].getMethodName());
            System.out.println("("  + traceElements[i].getClassName() + ":");
            System.out.println(traceElements[i].getLineNumber() + ")");
        }
    }

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

01-25 19:05:24.292      340-340/com.compdigitec.libvlcandroidsample D/dalvikvm﹕ Trying to load lib /storage/emulated/0/jniLibs/armeabi-v7a/libvlcjni.so 0x41bd4bf0
01-25 19:05:24.369      340-340/com.compdigitec.libvlcandroidsample D/dalvikvm﹕ Added shared lib /storage/emulated/0/jniLibs/armeabi-v7a/libvlcjni.so 0x41bd4bf0
01-25 19:05:24.370      340-340/com.compdigitec.libvlcandroidsample D/VLC/JNI/main﹕ JNI interface loaded.
01-25 19:05:24.370      340-340/com.compdigitec.libvlcandroidsample D/dalvikvm﹕ Trying to load lib /storage/emulated/0/jniLibs/armeabi-v7a/libiomx-ics.so 0x41bd4bf0
01-25 19:05:24.373      340-340/com.compdigitec.libvlcandroidsample D/dalvikvm﹕ Added shared lib /storage/emulated/0/jniLibs/armeabi-v7a/libiomx-ics.so 0x41bd4bf0
01-25 19:05:24.373      340-340/com.compdigitec.libvlcandroidsample D/dalvikvm﹕ No JNI_OnLoad found in /storage/emulated/0/jniLibs/armeabi-v7a/libiomx-ics.so 0x41bd4bf0, skipping init
01-25 19:05:24.375      340-340/com.compdigitec.libvlcandroidsample E/VLC/LibVLC﹕ Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni from loader

私はGoogleで多くのことを調査しましたが、まだ解決方法がわかりません。

4

1 に答える 1