2016-04-05 12 views
1

Ich habe dieses Projekt mit Eclipse https://github.com/youtube/yt-watchme bauen und es läuft gut, aber wenn ich versuche, dieses Projekt in android Studio zu bauen, bin ich Fehler in meinem Ffmpeg Klasse, ich habe die ganze Datei kopieren von meiner laufenden Demo, die ich in Eclipse zu meinem Android Studio-Projekt-Verzeichnis gemacht habe, werde ich meine Verzeichnisstruktur posten und build.gradle, bitte jemand mich? finden Sie in der untenAndroid java.lang.UnsatisfiedLinkError - konnte nicht finden "libffmpeg.so"

Process: com.google.android.apps.watchme, PID: 6330 
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.google.android.apps.watchme-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libffmpeg.so" 
      at java.lang.Runtime.loadLibrary(Runtime.java:366) 
      at java.lang.System.loadLibrary(System.java:988) 
      at com.google.android.apps.watchme.Ffmpeg.<clinit>(Ffmpeg.java:22) 
      at com.google.android.apps.watchme.VideoStreamingConnection.open(VideoStreamingConnection.java:71) 
      at com.google.android.apps.watchme.StreamerService.startStreaming(StreamerService.java:73) 
      at com.google.android.apps.watchme.StreamerActivity.startStreaming(StreamerActivity.java:161) 
      at com.google.android.apps.watchme.StreamerActivity.access$200(StreamerActivity.java:39) 
      at com.google.android.apps.watchme.StreamerActivity$1.onServiceConnected(StreamerActivity.java:55) 
      at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1208) 
      at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1225) 
      at android.os.Handler.handleCallback(Handler.java:739) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5343) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 

enter image description here

und in JNI-Funktion

enter image description here

+0

Wo sind Ihre jni Ordner? Legen Sie sie in src-> Main-> jni –

+0

Ja, ich habe die Ordner in der gleichen Position erstellt Ihnen auf dem Bildschirm – Achin

+0

geschossen überprüfen finden Sie in dem Bildschirm – Achin

Antwort

1

haben Sie fügte hinzu: „libffmpeg.so“ Datei für alle abis? ('X 86', 'x86_64' 'armeabi', 'armeabi-V7A', 'arm64-V8A', 'Mips', 'mips64') wenn nicht, dann apk verfügbare abis nur erzeugen. nehme libffmpeg.so Datei für 'armeabi' haben, 'armeabi-V7A' abis. Dann müssen Sie folgende in die Endung von Android {} Teil von App.gradle hinzufügen.

splits { 

    // Configures multiple APKs based on ABI. 
    abi { 

     // Enables building multiple APKs per ABI. 
     enable true 

     // By default all ABIs are included, so use reset() and include to specify that we only 
     // want APKs for x86, armeabi-v7a, and mips. 

     // Resets the list of ABIs that Gradle should create APKs for to none. 
     reset() 

     // Specifies a list of ABIs that Gradle should create APKs for. 


     include 'armeabi', 'armeabi-v7a' 
     // Specifies that we do not want to also generate a universal APK that includes all ABIs. 
     universalApk false 
    } 
} 
Verwandte Themen