NoClassDefFoundError: com.squareup.picasso.Picasso с телефоном
Я получаю noClassDefFoundError на телефонах, работающих под управлением API версии 21. Сначала он шел с другими классами, после удаления всех возможных кодов он начал поступать с библиотекой Picasso. Я приложил свой logcat и build.gradle.
Пожалуйста, помогите мне, я застрял, я пробовал много решений, но никто не работает.
Simmilar вопросы, которые я нашел, - https://github.com/square/picasso/issues/1264
build.gradle -
compileSdkVersion 23
buildToolsVersion "23.0.3"
useLibrary 'org.apache.http.legacy'
dexOptions {
incremental false
javaMaxHeapSize "2048M"
preDexLibraries = false
}
defaultConfig {
applicationId "com.kaaryanext.raghukaka"
minSdkVersion 15
targetSdkVersion 23
versionCode 25
versionName "1.2.14"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:multidex:1.0.0'
compile 'com.google.code.gson:gson:2.2.4'
compile('com.android.support:appcompat-v7:23.1.1') {
exclude module: 'support-v4'
}
compile 'com.crittercism:crittercism-android-agent:5.0.6'
compile 'com.android.support:support-v4:23.1.1'
compile "com.android.support:recyclerview-v7:23.1.0"
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile "com.google.android.gms:play-services:8.1.0"
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:design:23.1.1'
compile 'com.getbase:floatingactionbutton:1.10.0'
compile 'com.loopj.android:android-async-http:1.4.9'
}
04-18 09: 53: 10.990 16825-16825 / com.kaaryanext.raghukaka E / dalvikvm: Не удалось найти класс 'com.squareup.picasso.Picasso$1', на который ссылается метод com.squareup.picasso.Picasso. 04-18 09:53:10.990 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить новый экземпляр 9172 (Lcom/squareup/picasso/Picasso$1;) в Lcom/squareup/picasso/Picasso; 04-18 09:53:10.990 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x22 в 0x0000 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Dispatcher;) 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Cache;) 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Stats;) 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka E/dalvikvm: Не удалось найти класс 'com.squareup.picasso.ResourceRequestHandler', на который ссылается метод com.squareup.picasso.Picasso. 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить новый экземпляр 9190 (Lcom/squareup/picasso/ResourceRequestHandler;) в Lcom/squareup/picasso/Picasso; 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x22 в 0x001d 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Could не найден метод com.squareup.picasso.Utils.checkMain, на который ссылается метод com.squareup.picasso.Picasso.cancelExistingRequest 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить статический метод 61383: Lcom/squareup/picasso/Utils;.checkMain ()V 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x71 в 0x0000 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, указанный в подписи (Lcom/squareup/picasso/Action;) 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Action.isCancelled, на который ссылается метод com.squareup.picasso.Picasso.deliverAction 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно восстановить старый виртуальный метод 61214: Lcom/squareup/picasso/Action;.isCancelled ()Z 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x6e в 0x0000 04-18 09:53:11.000 16825-16825/com.kaaryanext.raghukaka E/dalvikvm: Не удалось найти класс 'com.squareup.picasso.RemoteViewsAction$RemoteViewsTarget', на который ссылается метод com.squareup.picasso.Picasso.cancelRequest 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить новый экземпляр 9184 (Lcom/squareup/picasso/RemoteViewsAction$RemoteViewsTarget;) в Lcom/squareup/picasso/Picasso; 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x22 в 0x0000 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Target;) 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Utils.checkMain, ссылка на метод com.squareup.picasso.Picasso.cancelTag 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить статический метод 61383: Lcom/squareup/picasso/Utils;.checkMain ()V 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x71 в 0x0000 04-18 09: 53: 11.010 16825-16825 / com. kaaryanext.raghukaka W / dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/BitmapHunter;) 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.BitmapHunter.getAction, refe исключено из метода com.squareup.picasso.Picasso.complete 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61218: Lcom/squareup/picasso/BitmapHunter;.getAction ()Lcom/squareup/picasso/Action; 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x6e в 0x0002 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/DeferredRequestCreator;) 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Action;) 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Action.getTarget, на который ссылается метод com.squareup.picasso.Picasso.enqueueAndSubmit 04-18 09:53:11.010 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61213: Lcom/squareup/picasso/Action;.getTarget ()Ljava/lang/ объект; 04-18 09: 53: 11.010 16825-16825 / com.kaaryanext.raghukaka D / dalvikvm: VFY: замена кода операции 0x6e на 0x0000 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Could не найден метод com.squareup.picasso.Stats.createSnapshot, на который ссылается метод com.squareup.picasso.Picasso.getSnapshot 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61376: Lcom/squareup/picasso/Stats;.createSnapshot ()Lcom/squareup/picasso/StatsSnapshot; 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x6e на 0x0002 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: может не найден метод com.squareup.picasso.Cache.clearKeyUri, на который ссылается метод com.squareup.picasso.Picasso.invalidate 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить метод интерфейса 61226: Lcom/squareup/picasso/Cache;.clearKeyUri (Ljava/lang/String;)V 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x72 в 0x0010 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Dispatcher.dispatchPauseTag, на который ссылается метод com.squareup.picasso.Picasso.pauseTag 04-18 09:53:11.020 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61235: Lcom/squareup/picasso/Dispatcher;.dispatchPauseTag (Ljava/lang/Object;)V 04-18 09:53:11.020 16825-16825/ с om.kaaryanext.raghukaka D / dalvikvm: VFY: замена кода операции 0x6e на 0x0002 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Cache.get, на который ссылается метод com.squareup.picasso.Picasso.quickMemoryCacheCheck 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить метод интерфейса 61227: Lcom/squareup/picasso/Cache;.get (Ljava/lang/String;)Landroid/graphics/Bitmap; 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x72 в 0x0002 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Action;) 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить поле экземпляра 34051 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x52 в 0x0001 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: не удалось найти метод com.squareup.picasso.Dispatcher.dispatchResumeTag, на который ссылается метод com.squareup.picasso.Picasso.resumeTag 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61236: Lcom/squareup/picasso/Dispatcher;.dispatchResumeTag (Ljava/lang/Object;)V 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x6e в 0x0002 04 -18 09: 53: 11.030 16825-16825 / co m.kaaryanext.raghukaka I / dalvikvm: Не удалось найти метод com.squareup.picasso.Cache.clear, на который ссылается метод com.squareup.picasso.Picasso.shutdown 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить метод интерфейса 61225: Lcom/squareup/picasso/Cache;.clear ()V 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x72 в 0x0013 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Action;) 04-18 09:53:11.030 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Dispatcher.dispatchSubmit, на который ссылается метод com.squareup.picasso.Picasso.submit 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить виртуальный метод 61237: Lcom/squareup/picasso/Dispatcher;.dispatchSubmit (Lcom/squareup/picasso/Action;)V 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x6e в 0x0002 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно найти класс, на который есть ссылка в подписи (Lcom/squareup/picasso/Request;) 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: Не удалось найти метод com.squareup.picasso.Picasso$RequestTransformer.transformRequest, на который ссылается метод com.squareup.picasso.Picasso.transformRequest 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: VFY: невозможно разрешить метод интерфейса 61271: Lcom/squareup/picasso/Picasso$RequestTransformer;.transformRequest (Lcom/squareup/picasso/ Запрос;)Lcom/squareup/ Picasso / Запрос; 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: VFY: замена кода операции 0x72 в 0x0002 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef46 в 0x06 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xefbe в 0x1f в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef2d в 0x2c в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.040 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef43 в 0x34 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef2e в 0x3c в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef20 в 0x44 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef3f в 0x4c в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать поле экземпляра ref 0x8505 при 0x54 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef45 в 0x56 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef53 в 0x87 в Lcom/squareup/picasso/Picasso;. 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать поле экземпляра ref 0x8504 в 0x2d в Lcom/squareup/picasso/Picasso;.deliverAction 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать поле экземпляра ref 0x8504 при 0x55 в Lcom/squareup/picasso/Picasso;.deliverAction 04-18 09:53:11.050 16825-16825/com.kaaryanext.raghukaka D/dalvikvm: DexOpt: невозможно выбрать прямой вызов 0xef81 в 0x02 в Lcom/squareup/picasso/Picasso;.cancelRequest 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka I/dalvikptm:: невозможно оптимизировать экземпляр поля ref 0x852f при 0x21 в Lcom/squareup/picasso/Picasso;.complete 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать статическое поле ref 0x8518 в 0x13 в Lcom/squareup/picasso/Picasso;.resumeAction 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать экземпляр поля ref 0x8504 при 0x20 в Lco m / squareup / picasso / Picasso;.resumeAction 04-18 09: 53: 11.060 16825-16825 / com.kaaryanext.raghukaka I / dalvikvm: DexOpt: невозможно оптимизировать статическое поле ref 0x8518 при 0x31 в Lcom/squareup/picasso/Picasso;.resumeAction 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka I/dalvikvm: DexOpt: невозможно оптимизировать поле экземпляра ref 0x8504 при 0x4a в Lcom/squareup/picasso/Picasso;.resumeAction 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: Исключение Ljava/lang/NoClassDefFoundError; выбрасывается при инициализации Lcom/squareup/picasso/Picasso; 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka D/AndroidRuntime: завершение работы VM 04-18 09:53:11.060 16825-16825/com.kaaryanext.raghukaka W/dalvikvm: threadid=1: поток выход с неперехваченным исключением (group=0x418b1c80) 04-18 09:53:11.080 16825-16825/com.kaaryanext.raghukaka E/AndroidRuntime: FATAL EXCEPTION: main Процесс: com.kaaryanext.raghukaka, PID: 16825 java.lang.NoClassrorF: com.squareup.picasso.Picasso$1 на com.squareup.picasso.Picasso.(Picasso.java:109) на com.kaaryanext.raghukaka.listadapters.HomePageListAdapter$RecyclerAdapter.onBindViewHolder(HomePageListAdapter.jas)
3 ответа
Попробуйте следующий код
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
}
и добавьте следующую строку в свой файл Android andif в тег приложения
android:name="your package name.MyApplication"
Пожалуйста, попробуйте следующие изменения
1 В вашем Gradle вам нужно указать multi dex и добавить библиотеку поддержки:
android {
defaultConfig {
...
multiDexEnabled true
...
}
}
dependencies {
...
compile 'com.android.support:multidex:1.0.0'
...
}
2- В вашем манифесте вы должны настроить приложение на мультидексное приложение:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.name">
<application
...
android:name="com.package.name.my_application">
...
</application>
</manifest>
3.В своем классе приложения вы должны либо расширить MultiDexApplication:
public class my_application extends MultiDexApplication
{
...
}
4. Или переопределите метод attachBaseContext():
public class my_application extends Application
{
protected void attachBaseContext(Context base)
{
super.attachBaseContext(base);
MultiDex.install(this);
}
}
Вам нужно обработать файл Multiple dex после включения этой опции из build.gradle
& если в вашем проекте вы используете класс Application, то расширьте его с помощью MultiDexApplication
& обрабатывать несколько файлов dex в attachBaseContext
добавить эту библиотеку в ваши зависимости
dependencies {
compile 'com.android.support:multidex:1.0.1'
// your dependencies which you are using.
}
Ваш класс приложения
public class MyAppClass extends MultiDexApplication{
@Override
protected void attachBaseContext(Context newBase) {
MultiDex.install(newBase);
super.attachBaseContext(newBase);
}
}
декларировать MyAppClass
в вашем AndroidManfiest имя файла приложения.
<application
android:name="MyAppClass"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
//... your other manifest declaration
</application>
Обновленный Gradle
добавить эту строку в Android DefaultConfig
multiDexEnabled true
Предложение
Используйте только необходимую библиотеку службы воспроизведения, не добавляйте всю группу службы воспроизведения.