2011-12-09 4 views
3

이 라이브러리 프로젝트를 사용합니다 : https://github.com/JakeWharton/Android-ViewPagerIndicator 내 프로젝트에서 작동하도록하기 위해 git이 제공 한 소스 코드를 기반으로 새 프로젝트를 만들고 여기에 참조를 추가했습니다. 내 최종 프로젝트. 모든 것이 잘 작동합니다. 내 최종 프로젝트에서 사용 :jar에 간단한 Eclipse 라이브러리 프로젝트

<com.viewpagerindicator.TitlePageIndicator 
     android:id="@+id/indicator" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

이 라이브러리 프로젝트 참조를 피하고 내 최종 프로젝트에 간단한 병을 사용하고 싶습니다. 라이브러리 프로젝트에서 jar 파일을 생성하고 Java 빌드 경로의 Final 프로젝트에 추가했습니다.

12-09 10:57:34.714: E/AndroidRuntime(10492): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.SettingsActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.viewpagerindicator.TitlePageIndicator 

그것이 내가 원하는 것을 얻을 수있다 : 나는 그것을 실행하면 는 오류가 발생합니다?

+0

당신은 당신의 프로젝트에 라이브러리 프로젝트를 추가? –

+0

네, 추가 했습니다만, 재사용하거나 프로젝트 소스 코드 만 보내기가 더 쉽기 때문에 jar 파일 만 추가하는 것을 선호합니다. 이것은 질문에 관한 모든 것입니다. – Alin

+0

그래서 라이브러리 프로젝트를 Jar 파일로 내보내고 프로젝트에서 가져 오기 –

답변

6

Android 개발자 도구의 현재 버전 (15.0.1)은 리소스 (예 : 레이아웃, 맞춤 속성 등)가 포함 된 프로젝트를 .jar 번들로 묶을 수 없습니다. the library project documentation 당으로

:

However, a library project differs from an standard Android application project in that you cannot compile it directly to its own .apk and run it on an Android device. Similarly, you cannot export the library project to a self-contained JAR file, as you would do for a true library. Instead, you must compile the library indirectly, by referencing the library in the dependent application and building that application.

ADT 현재 이전에 신경질 순수 프로젝트 참조를 해결하는 데 목적을 연결 이클립스에서 라이브러리 프로젝트의 .jar을 첨부합니다. 그러나 여기에는 번들로 제공되는 리소스가 없습니다.

ADT Tools 웹 사이트의 download page은 ADT 16에 ADT Tools를 사용한다는 것을 나타내지 않습니다 (ADT 16 미리보기 2). 현재의 소문은 이것이 도구의 버전 17로 나아가는 좋은 방법 인 것입니다. 트위터와 안드로이드 개발자 대화방에서 주로 듣고있는 것처럼 나는 이것을 인용 할 수 없다.

지금은 라이브러리 프로젝트로 사용하고 계십니다.

신뢰 날, 아무도 .jar 내가 :) 내가 jar 파일을 사용하지 않는

+0

삭제 해 주셔서 감사합니다. – Alin

+0

@ 제이크 : 당신의 정보 출처를 알려주시겠습니까? http://developer.android.com/guide/developing/projects/index.html#LibraryProjects에서 다음을 발견했습니다. "참고 : 각 라이브러리 프로젝트를 생성하는 새 라이브러리 프로젝트 기능을 사용하려면 SDK 도구 r14 이상이 필요합니다. 자신의 JAR 파일. " 그러나 이것은 무엇이든 의미 할 수 있습니다. SDK Tools, Revision 14 (2011 년 10 월)의 릴리스 노트에는 "라이브러리 프로젝트의 구축 방식이 변경되었습니다."를 제외하고는 아무 것도 말하지 않습니다. –

+0

가능한 한 최선의 인용과 설명을 추가했습니다. 이 기능에 대한 원래 버그를 b.android.com에서 찾을 수 없습니다. –

0

을보다 더이야 이러한 프로젝트를 번들하고 싶어하지만 같은 오류 메시지가 있었고, 그것을 이클립스에서 이런 식으로 고정 : 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성> Android로 이동하고 라이브러리 상자에서 추가를 클릭하고 ViewPagerIndicator를 선택합니다.

0

나는 또한 레이아웃을 부 풀리게하고 있었다. .. 나는 이것이 꽤 오래되었던 포스트 다라는 것을 알고있다. 그러나 누군가 내가 같은 오류로 고생했다라고하는 희망에서 나의 대답을 게시하는 것은 모든 단계를 따라 갔다. 그 블로그에 포함되어 있지만 ... 내가 실수 한 것은 내 라이브러리 파일이 매우 긴 경로 (C :/Users // Downloads/Jakewhartan ... yada, yada yada/Jakewhartan ...../libs) 그게 문제 였어 ... 나는 F :/workdpace/mylibs와 같은 더 작은 경로로 옮겨서 작동했다 .......

지금 나는 WINSOWS가 제대로 지원하지 않는다는 점에 유의한다. LONG PATHS ..

1

나는 TitlePageIndicator를 dinamically 생성했으며 예외는 throw하지 않습니다.

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ViewPagerAdapter adapter = new ViewPagerAdapter(this); 

    ViewPager pager = new ViewPager(this); 
    pager.setAdapter(adapter); 

    TitlePageIndicator indicator = new TitlePageIndicator(this); 
    indicator.setViewPager(pager); 

    LinearLayout body = (LinearLayout) findViewById(R.id.body); 
    body.addView(indicator); 
    body.addView(pager); 

은}

관련 문제