#android #apk #dalvik
#Android #Apk #dalvik
Вопрос:
Я получаю приведенную ниже ошибку каждый раз, когда создаю свой APK; Сборка Gradle показывает, что это было выполнено успешно, но при установке APK на мой телефон он каждый раз выходит из строя
10-04 22:52:53.848 9297-9297/com.usfca.studentrecordsverify E/Trace: error opening trace file: No such file or directory (2)
10-04 22:52:53.908 9297-9297/com.usfca.studentrecordsverify E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.monkeyPatchExistingResources
10-04 22:52:53.908 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve check-cast 1786 (Landroid/util/ArrayMap;) in Lcom/android/tools/fd/runtime/MonkeyPatcher;
10-04 22:52:53.908 9297-9297/com.usfca.studentrecordsverify E/dalvikvm: Could not find class 'android.util.ArrayMap', referenced from method com.android.tools.fd.runtime.MonkeyPatcher.pruneResourceCache
10-04 22:52:53.908 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve const-class 1786 (Landroid/util/ArrayMap;) in Lcom/android/tools/fd/runtime/MonkeyPatcher;
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve virtual method 437: Landroid/content/Context;.getSystemService (Ljava/lang/Class;)Ljava/lang/Object;
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve virtual method 231: Landroid/app/Activity;.stopLockTask ()V
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.usfca.studentrecordsverify.MainActivity.access$super
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve check-cast 226 (Landroid/os/PersistableBundle;) in Lcom/usfca/studentrecordsverify/MainActivity;
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve virtual method 419: Landroid/content/Context;.getColorStateList (I)Landroid/content/res/ColorStateList;
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve virtual method 154: Landroid/app/Activity;.onVisibleBehindCanceled ()V
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify W/dalvikvm: VFY: unable to resolve virtual method 158: Landroid/app/Activity;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
10-04 22:52:53.928 9297-9297/com.usfca.studentrecordsverify E/dalvikvm: Could not find class 'android.os.PersistableBundle', referenced from method com.usfca.studentrecordsverify.MainActivity.access$super
Вот build.gradle
Комментарии:
1. пожалуйста, сначала правильно отформатируйте свой вопрос.
2. Кажется, что среда выполнения Android не может быть найдена. Можете ли вы поделиться своим файлом gradle? Вы используете это на телефоне или эмуляторе?
3. Я работал на своем телефоне.. Android 4.2.2, я попытался запустить то же самое на эмуляторе с Android 5.0
4. ArrayMap был представлен с API-уровнем 19? На каком устройстве вы тестируете свой код?
5. Однако я не использую ArrayMap в своем классе; Я просто использовал Main Activity с заставкой и страницей о нас с некоторыми текстами.
Ответ №1:
android.util.ArrayMap
был представлен с API-Level 19 (ArrayMap). Если вы запустите код на устройстве Android 4.2.2, он не найдет этот класс на вашем устройстве, и ваше приложение выйдет из строя.
Вместо этого вы можете использовать a java.util.Map
. Он не такой производительный, как ArrayMap, но доступен на каждой платформе Android.
Комментарии:
1. Я попытался запустить его в Android 5.0, 6.0, даже там он терпит неудачу; Также то же самое происходит в эмуляторах с уровнем API 21
2. Вы пытались отключить мгновенный запуск. Кроме того, ваши библиотеки поддержки немного устарели. Доступен 24.2.1. Возможно, это помогает. Кроме того, я бы действительно проверил, не используете ли вы API, который недоступен на вашем оборудовании.
Ответ №2:
измените minSdkVersion на 19
defaultConfig {
applicationId "com.usfca.studentrecordsverification"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
Потому что ArrayMap был представлен с API-уровнем 19!