java.lang.NoClassDefFoundError: Не удалось разрешить: Landroidx / arch / core / util / Cancellable - PullRequest
1 голос
/ 23 мая 2019

Я делю свой проект приложения на другие модули и после реализации DI и разделения зависимостей между модулями я получаю следующее исключение:

java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/arch/core/util/Cancellable;
        at androidx.activity.ComponentActivity.<init>(ComponentActivity.java:69)
        at androidx.fragment.app.FragmentActivity.<init>(FragmentActivity.java:118)
        at androidx.appcompat.app.AppCompatActivity.<init>(AppCompatActivity.java:77)

Затем я проверяю класс ComponentActivity и да, указанный класс не может найти класс Cancellable.

package androidx.activity;  

import static android.os.Build.VERSION.SDK_INT;  

import android.os.Build;  
import android.os.Bundle;  
import android.view.View;  
import android.view.Window;  

import androidx.annotation.CallSuper;  
import androidx.annotation.ContentView;  
import androidx.annotation.LayoutRes;  
import androidx.annotation.NonNull;  
import androidx.annotation.Nullable;  
import androidx.arch.core.util.Cancellable; // <---- This class can't be found!
import androidx.lifecycle.GenericLifecycleObserver;  
import androidx.lifecycle.Lifecycle;  
import androidx.lifecycle.LifecycleOwner;  
import androidx.lifecycle.LifecycleRegistry;  
import androidx.lifecycle.ReportFragment;  
import androidx.lifecycle.ViewModelStore;  
import androidx.lifecycle.ViewModelStoreOwner;  
import androidx.savedstate.SavedStateRegistry;  
import androidx.savedstate.SavedStateRegistryController;  
import androidx.savedstate.SavedStateRegistryOwner;  

import java.util.WeakHashMap;  

/**  
 * Base class for activities that enables composition of higher level components. * <p>  
  * Rather than all functionality being built directly into this class, only the minimal set of  
 * lower level building blocks are included. Higher level components can then be used as needed * without enforcing a deep Activity class hierarchy or strong coupling between components. */public class ComponentActivity extends androidx.core.app.ComponentActivity implements  
  LifecycleOwner,  
  ViewModelStoreOwner,  
  SavedStateRegistryOwner {

После просмотра пакета я решил добавить эту зависимость:

implementation "androidx.core:core:1.1.0-alpha05"

пока, все равно не получается.

Затем я проверил некоторые вопросы здесь, в StackOverflow, которые рекомендовали использовать Multidex, поэтому я включил Mutlidex в своем файле build.gradle, но все же, он все еще не работает

Я добавил мультидекс так:

implementation "androidx.multidex:multidex:2.0.0"

build.gradle

defaultConfig {  
// Config stuff
  multiDexEnabled = true  
}

и создание моего Application класса расширяет класс MultiDexApplication, но он все равно не работает

Похоже, мне здесь не хватает зависимости, но я не могу ее найти. С

1 Ответ

3 голосов
/ 23 мая 2019

Согласно примечаниям к выпуску androidx.arch.core :

Интерфейс Cancellable устарел из-за отсутствия компонуемой инфраструктуры и его удаления из общедоступного APIв androidx.activity 1.0.0-alpha07.( aosp / 945461 )

Поэтому вам следует перейти к действию 1.0.0-alpha07 или выше, чтобы удалить зависимость ComponentActivity от Cancellable.Это выполняется автоматически при обновлении до фрагментов 1.1.0-alpha07 или выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...