Android-приложение не запускается на Armv6 - Невозможно найти нативную библиотеку
Я не могу найти ответ на проблему.
Я разработал приложение для Android, доступное на рынке. Пока что несколько человек купили его, и он работает, но один клиент получил эту ошибку:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.esenthel.rts/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to find native library: Project
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Unable to find native library: Project
at android.app.NativeActivity.onCreate(NativeActivity.java:187)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
Похоже, что файл приложения не был найден "Невозможно найти собственную библиотеку: проект"
Клиент говорит, что у него процессор ARMV6. Я скомпилировал приложение для ARM5 и ARM7. При просмотре файла APK я могу подтвердить, что у меня есть эти файлы:
lib/armeabi/libProject.so
lib/armeabi-v7a/libProject.so
Приложение было разработано с использованием последней версии Android NDK SDK, внутри нет Java-кода, только C++. Построен вручную с использованием Ant (без затмения)
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.esenthel.rts" android:versionCode="2" android:versionName="2">
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="14"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-feature android:glEsVersion="0x00020000"/>
<application android:label="Esenthel RTS" android:hasCode="false" android:debuggable="false" android:icon="@drawable/icon">
<activity android:name="android.app.NativeActivity" android:label="Esenthel RTS" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:screenOrientation="fullSensor" android:configChanges="orientation">
<meta-data android:name="android.app.lib_name" android:value="Project"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
Данное приложение находится здесь https://play.google.com/store/apps/details?id=com.esenthel.rts
Повторюсь, приложение работает на ARM7 - Asus Transformer Prime, HTC Evo 3D, Sony Ericsson Xperia Neo, Samsung Galaxy Tab 10.1.
Но не запускается на неизвестном процессоре ARM6
1 ответ
Проблема заключалась в "нехватке внутренней памяти" на клиентском устройстве, после того как он освободил место, приложение начало работать.