chaquo / chaquopy

Chaquopy: the Python SDK for Android
https://chaquo.com/chaquopy/
MIT License
808 stars 131 forks source link

com.chaquo.python.PyException: ELFError: Magic number does not match #281

Closed sayan-sen closed 4 years ago

sayan-sen commented 4 years ago
    --------- beginning of crash
2020-05-12 13:50:42.185 22694-22694/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 22694
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: com.chaquo.python.PyException: ELFError: Magic number does not match
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
     Caused by: com.chaquo.python.PyException: ELFError: Magic number does not match
        at <python>.java._vendor.elftools.common.utils._assert_with_exception(utils.py:101)
        at <python>.java._vendor.elftools.common.utils.elf_assert(utils.py:69)
        at <python>.java._vendor.elftools.elf.elffile._identify_file(elffile.py:229)
        at <python>.java._vendor.elftools.elf.elffile.__init__(elffile.py:61)
        at <python>.java.android.importer.load_needed(importer.py:334)
        at <python>.java.android.importer.CDLL_init_override(importer.py:88)
        at <python>.darknet.<module>(darknet.py:57)
        at <python>.java.chaquopy.import_override(import.pxi:26)
        at <python>.boundingbox.<module>(boundingbox.py:1)
        at <python>.java.chaquopy.import_override(import.pxi:26)
        at <python>.EdgeAnalytics.<module>(EdgeAnalytics.py:13)
        at <python>.importlib._bootstrap._call_with_frames_removed(<frozen importlib._bootstrap>:219)
        at <python>.importlib._bootstrap_external.exec_module(<frozen importlib._bootstrap_external>:783)
        at <python>.importlib._bootstrap._load_unlocked(<frozen importlib._bootstrap>:671)
        at <python>.importlib._bootstrap._find_and_load_unlocked(<frozen importlib._bootstrap>:975)
        at <python>.importlib._bootstrap._find_and_load(<frozen importlib._bootstrap>:991)
        at <python>.importlib._bootstrap._gcd_import(<frozen importlib._bootstrap>:1014)
        at <python>.importlib.import_module(__init__.py:127)
        at <python>.chaquopy_java.Java_com_chaquo_python_Python_getModule(chaquopy_java.pyx:153)
        at com.chaquo.python.Python.getModule(Native Method)
        at com.example.myapplication.MainActivity.onCreate(MainActivity.java:35)
        at android.app.Activity.performCreate(Activity.java:7802)
        at android.app.Activity.performCreate(Activity.java:7791)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
        at android.os.Handler.dispatchMessage(Handler.java:107) 
        at android.os.Looper.loop(Looper.java:214) 
        at android.app.ActivityThread.main(ActivityThread.java:7356)
sayan-sen commented 4 years ago

How do I fix it?

mhsmith commented 4 years ago

The first two Google results for "darknet.py" both involve loading "libdarknet.so" (1, 2). If your code is similar, where did you get that .so file from? You won't be able to take .so files from other operating systems and load them on Android.

sayan-sen commented 4 years ago

i used this to build darknet in MacOS and Raspbian. git clone https://github.com/pjreddie/darknet cd darknet make how do i build it for android now?

mhsmith commented 4 years ago

Building native code for Android isn't easy. If you were trying to use Darknet to support the YOLO model, it looks like that has been ported to TensorFlow and PyTorch, both of which Chaquopy already supports.

sayan-sen commented 4 years ago

okay will try this again and check.