検索

ホームページ  >  に質問  >  本文

Android Studio的so文件无法加载

最近重构之前的项目,调试时出现无法加载so文件。
我so文件放置的路径如下:

出现的错误是:

E/AndroidRuntime: FATAL EXCEPTION: main
  Process: net.comet.example, PID: 6786
  java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/net.comet.example-1/base.apk"],nativeLibraryDirectories=[/data/app/net.comet.example-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libZBarDecoder.so"
      at java.lang.Runtime.loadLibrary(Runtime.java:366)
      at java.lang.System.loadLibrary(System.java:989)
      at com.dtr.zbar.build.ZBarDecoder.<clinit>(ZBarDecoder.java:6)
      at me.ele.hbdteam.widget.ScanView$1.onPreviewFrame(ScanView.java:263)
      at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1565)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:155)
      at android.app.ActivityThread.main(ActivityThread.java:5696)
      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:1029)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

错误里显示的路径中包名后面多了一个 -1 ,不知道怎么回事,我仔细检查了下,发现工程里的包名没有 -1 才对!

我又重新建了一个空的工程,然后把这些文件和部分代码拷贝过去,运行却正常。

百思不得其解,所以上来请教了!

黄舟黄舟2772日前859

全員に返信(2)返信します

  • 怪我咯

    怪我咯2017-04-17 15:10:06

    私のプロジェクトにはバグのある Tencent が統合されているため、バグのある jar を手動でインポートする方法を使用すると、コードは実行時に他のサードパーティの so ファイルを見つけられないため、この問題は解決されました。パッケージ、そのような問題はありません。それはバグのバグであるはずです!

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 15:10:06

    ログ内のパッケージ名に -1 が追加されているのは正常です。例外は
    nativeLibraryDirectories=[/data/app/net.comet.example-1/lib/arm64, /vendor/lib64, / にあります。 system/lib64]]] が "libZBarDecoder.so" を見つけられませんでした
    ライブラリ libZBarDecoder.so が見つかりませんでした。
    提案は 2 つあります
    1. libZBarDecoder.so を armeabi-v7a ディレクトリにコピーします
    2. app.gradle に jniLibs 宣言を追加します

    リーリー

    うまくいかない場合は、詳しく分析しましょう

    返事
    0
  • キャンセル返事