2017-11-01 9 views
3

내 LiveData를 관찰하는 viewModel 뷰가 있습니다. Repository에서 데이터를 가져옵니다 (Room 또는 WebAPI에서 데이터를 가져옵니다). 데이터를 더 깨끗하게 관리 할 수 ​​있도록 NetworkBoundResource 추상 클래스를 구현했습니다. MediatorLiveData 객체는이 클래스에서 사용됩니다LiveData 'dispatchingValue'메서드에서 치명적인 예외 : 가상 메서드 없음 iteratorWithAdditions()

private final MediatorLiveData<Resource<ResultType>> result = new MediatorLiveData<>(); 

충돌이 내 생성자의 첫 번째 줄에서 발생합니다

java.lang.NoSuchMethodError: No virtual method iteratorWithAdditions()Landroid/arch/core/internal/SafeIterableMap$ListIterator; in class Landroid/arch/core/internal/SafeIterableMap; or its super classes (declaration of 'android.arch.core.internal.SafeIterableMap' appears in /data/app/com.example.smostofi.upswing-XxPvhI837wneIYVTOrU2Dw==/split_lib_dependencies_apk.apk:classes25.dex) 
                      at android.arch.lifecycle.LiveData.dispatchingValue(LiveData.java:145) 
                      at android.arch.lifecycle.LiveData.setValue(LiveData.java:293) 
                      at android.arch.lifecycle.MutableLiveData.setValue(MutableLiveData.java:33) 
                      at com.example.smostofi.upswing.data.Util.NetworkBoundResource.<init>(NetworkBoundResource.java:44) 

처음 요청 : 여기

@MainThread 
public NetworkBoundResource() { 

    result.setValue(Resource.<ResultType>loading(null)); 

    final LiveData<ResultType> dbSource = loadFromDb(); 

    result.addSource(dbSource, new Observer<ResultType>() { 
     @Override 
     public void onChanged(@Nullable ResultType newData) { 
      result.removeSource(dbSource); 
      if(shouldFetch(newData)) 
      { 
       fetchFromNetwork(dbSource); 
      } else { 
       result.setValue(Resource.success(newData)); 
      } 
     } 
    }); 
} 

오류 메시지입니다 여기서 질문을하면, 충분한 정보를 제공했으면 좋겠다. 미리 감사드립니다.

+0

어떤 해결책을 발견에

compile 'android.arch.lifecycle:extensions:1.0.0-alpha4' 

에서 수명주기 버전을 변경, 의존성 문제를 중복되지 않는 이유는 무엇입니까? 같은 문제에 직면 해있다. – iMDroid

+0

아니요 : | 개인적으로 아직 어떤 해결책도 찾을 수 없었습니다. – ShokouhM

+0

나는 그것이 yayy를 발견했다. .. 도움이되면 대답을 게시했다. – iMDroid

답변

0

을 동일한 받침대에 두 번 이상 추가해야합니다.

나는 과 동일했습니다. 그 이유는, 나는 아래와 같은 Gradle을 두 번 Appcompact 라이브러리를 추가했다되었습니다

implementation 'com.android.support:appcompat-v7:26.1.0' 
compile rootProject.ext.supportLibAppCompat 

하나를 제거하면 문제가 해결되었다.

같은 것을 확인하십시오. 희망은 도움이 :)

+1

와우! 고마워요! 중복이 어디에 있었는지 알 수는 없지만 비슷한 문제가있는 응용 프로그램 중 하나를 사용하여 전체 종속성 목록을 대체했기 때문에 내 문제였습니다. 다시 한 번 감사드립니다! – ShokouhM

0

그냥

compile 'android.arch.lifecycle:extensions:1.0.0-alpha9'