1

나는 이것을 할 수있는만큼 좋게 설명하려고 노력할 것이다.ActionBarCompat 및 HoloEverywhere가있는 응용 프로그램의 라이브러리 poject는 함께 살 수 있습니까?

인기있는 HoloEverywhere 라이브러리를 사용하여 ActionBarCompat를 사용하고 3.0 이전 장치에서 Holo 시각적 스타일을 얻는 응용 프로그램을 개발 중입니다. 그것은 완벽하게 작동합니다.

이제 타사 라이브러리 프로젝트를 내 응용 프로그램에 통합해야하지만 큰 문제에 직면하고 있습니다. 이 라이브러리는 v7 AppCompat 라이브러리를 사용하여 활동에 ActionBarCompat을 사용하고 있으며 이로 인해 응용 프로그램에서 많은 오류가 발생합니다.

HoloEverywhere에는 맞춤 ActionBarCompat (Google의 ActionBarCompat을 사용하고 수정했습니다)가 포함되어 있으며 통합하려는 타사 라이브러리에서 사용되는 ActionBarCompat와 충돌합니다. 다시 선언 된 스타일에 문제가 있습니다 (동일한 스타일이 v7 AppCompat 및 HoloEverywhere에서 선언 됨), 다시 선언 된 클래스 (이전과 같은 경우)로 해결할 수 없습니다.

아이디어가 있습니까? 아니면 포기해야합니까?

감사합니다.

답변

1

옵션 1 : 당신은 시도하고 타사 라이브러리에 사용되는 APPCOMPAT의 HoloEverywhere에 의해 사용되는 APPCOMPAT를 교환 할 수

.

는 대략 수반 :

1) 식에 모두 당겨 모두 libaries 소스를 얻기 및 수정 APPCOMPAT.

2) 일단 Eclipse에서 수정 된 응용 프로그램 compat Jar을 다른 제 3 자 빌드 경로로 바꾸고 종속성 등을 수정합니다. 사용중인 응용 프로그램에 대해서는 일반 응용 프로그램 호환성을 제거합니다.

3) 발생할 수있는 모든 충돌 혼란을 해결합니다.

문제 :

1) 그들이 더 낮은 아래로 APPCOMPAT 이상 할 수도 이상한 어떤 것을 모른다. 수정 된 AppCompat은 모르는 다른 것에 의존 할 수 있습니다.

2) 모든 오류를 해결하는 데 지루한 시간이 걸릴 수 있습니다.

3) 달성하는 데 많은 시간이 걸릴 수 있으며 노력할 가치가 없을 수 있습니다.

4) 의존성 관리에 익숙해야합니다.

옵션 2 :

받는다는 또는 라이브러리의 섹션을 제외 할 수 있습니다 다른 외부 빌드 관리자를 사용하여 프로젝트를 빌드합니다. 과거에 계층 구조가 다른 버전에 의존하는 라이브러리에서 종속성 트리의 일부를 제외시켜야한다는 것을 알고 있었고 이러한 메커니즘을 사용하여이 기능을 능숙하게 수행 할 수 있어야합니다 (이것은 큰 MAYBE입니다).

이것은 완전히 할 수 있지만 피타가 될 수 있습니다. 누가 무엇을했는지, 언제 어떻게 어떻게했는지에 따라 달라질 수 있습니다.

다른 옵션은 어떤 라이브러리가 무엇보다 중요한지 결정하는 것입니다.Holo Everywhere는 정말로 필요합니까? 또는 대체 UI로 해당 사용자를 만족시킬 수 있습니까? 이 제 3 자 라이브러리가 실제로 nescesary입니까? 그 문제를 다른 방법으로 해결할 수 있습니까?

마지막으로 - 끔찍한 일이 아니며, 내가 말하고자하는 것이 아닙니다. 결코이 아닙니다.이 문제는 수정 된 AppCompat 또는 다른 분기 된 것을 사용하면 다시 발생할 가능성이 있습니다. 도서관.