Couldn't load libPassword from loader:NDK開發中C檔案編譯成cpu的so類庫時,找不到類庫報錯的原因之一,libpasswordndk

來源:互聯網
上載者:User

Couldn't load libPassword from loader:NDK開發中C檔案編譯成cpu的so類庫時,找不到類庫報錯的原因之一,libpasswordndk

LogCat輸出:

03-03 12:42:32.665: E/AndroidRuntime(32432): FATAL EXCEPTION: main
03-03 12:42:32.665: E/AndroidRuntime(32432): Process: com.toro.passwordencode, PID: 32432
03-03 12:42:32.665: E/AndroidRuntime(32432): java.lang.UnsatisfiedLinkError: Couldn't load libPassword from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.toro.passwordencode-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.toro.passwordencode-1, /vendor/lib, /system/lib]]]: findLibrary returned null
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.Runtime.loadLibrary(Runtime.java:358)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.System.loadLibrary(System.java:526)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at com.toro.passwordencode.MainActivity.<clinit>(MainActivity.java:15)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.Class.newInstanceImpl(Native Method)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.Class.newInstance(Class.java:1208)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2116)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2258)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.ActivityThread.access$800(ActivityThread.java:147)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1211)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.os.Looper.loop(Looper.java:136)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at android.app.ActivityThread.main(ActivityThread.java:5135)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.reflect.Method.invokeNative(Native Method)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at java.lang.reflect.Method.invoke(Method.java:515)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
03-03 12:42:32.665: E/AndroidRuntime(32432):     at dalvik.system.NativeStart.main(Native Method)

Android.mk代碼如下:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)#LOCAL_MODULE    := libEncodePassword #導致錯誤的行,此處so類庫名前不能以“lib”開頭。應該是編譯時間產生的so類庫檔案都以lib為首碼有衝突。此處打個問號,求解LOCAL_MODULE    := EncodePassword #正確行#LOCAL_SRC_FILES := Password.cinclude $(BUILD_SHARED_LIBRARY)

 

MainActivity.java代碼如下:

    //載入cpu架構對應so類庫    static{        //System.loadLibrary("libEncodePassword"); //導致錯誤的行,此處so類庫名前不能以“lib”開頭        System.loadLibrary("EncodePassword"); //正確    }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.