Eclipse Android 프로젝트에 라이브러리 / JAR 추가
Eclipse의 Android 프로젝트에 써드 파티 라이브러리 (JAR)를 추가하는 것에 대한 두 부분으로 된 질문입니다.
질문의 첫 번째 부분은 타사 JAR (라이브러리)를 Android 프로젝트에 추가하려고 할 때 먼저 문제가 발생한다는 것입니다.
XML 구문 분석 오류 : 바인딩되지 않은 접두사
그 JAR의 클래스를 사용하려고하고 있기 때문에 접두사가 필요합니다. 무슨 일이야?
둘째, (고정 후 답변이 아래에 나와 있음) 내 응용 프로그램이 Android에서 작동하지 않으며 디버거 (LogCat)를 통해 소비하려고하는 클래스가 존재하지 않는다는 것을 알았습니다.
원인 : java.lang.ClassNotFoundException : com.github.droidfu.widgets.WebImageView ...
Eclipse에서 컴파일 또는 링커 오류가 발생하지 않는 이유는 에뮬레이터에서이 문제가 있습니까?
이 두 가지 질문은 내가 스스로 대답 할 것이므로 수사적입니다. 이 포럼의 다른 게시물은 문제와 다른 곳에서 논의가 이루어 지지만 다음 사람이 나올 때 더 분명히 도움이 될 수 있다고 생각합니다.
이제 누락 된 클래스 문제입니다.
저는 Eclipse Java EE 개발자이며 빌드 경로의 "사용자 라이브러리"메커니즘을 통해 수년간 타사 라이브러리를 추가하는 습관이있었습니다. 물론 타사 라이브러리를 추가하는 방법은 적어도 3 가지가 있습니다. 내가 사용하는 라이브러리는 겸손한 견해로 가장 우아합니다.
그러나 Dalvik "JVM"이 일반 Java 컴파일 클래스를 처리 할 수 없지만 특수 형식으로 변환해야하는 Android의 경우에는 작동하지 않습니다. 내가하지 않는 방식으로 라이브러리를 추가하면 이런 일이 발생하지 않습니다.
대신 써드 파티 라이브러리를 가져 와서 빌드 경로 (컴파일 목적으로 Eclipse에 알려짐)를 사용하여 추가하기위한 (일반적으로 사용 가능한) 지시 사항을 따르십시오. 다음은 단계별입니다.
- 호스트 개발 시스템으로 라이브러리를 다운로드하십시오.
- Eclipse / Android 프로젝트에서 새 폴더 libs를 작성하십시오 .
- libs를 마우스 오른쪽 단추로 클릭 하고 가져 오기-> 일반-> 파일 시스템을 선택한 후 파일 시스템에서 찾아보기를 선택하여 라이브러리의 상위 디렉토리를 찾으십시오 (예 : 다운로드 한 위치).
- 확인을 클릭 한 다음 왼쪽 분할 창에서 디렉토리 이름 (확인란이 아님)을 클릭 한 다음 오른쪽 분할 창에서 관련 JAR을 확인하십시오. 그러면 라이브러리가 프로젝트에 물리적으로 배치됩니다.
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 빌드 경로-> 빌드 경로 구성을 선택한 다음 라이브러리 탭, JAR 추가 ...를 차례로 클릭하고 libs 디렉토리 에서 새 JAR로 이동하여 추가하십시오. (이것은 우연히 새 JAR이 Android에서 사용하도록 변환되는 순간입니다.)
노트
lib가 빌드 경로에 이미 포함 된 경우 5 단계가 필요하지 않을 수 있습니다. 추가하기 전에 먼저 존재하는지 확인하십시오.
여기에서 한 일은 두 가지 일을 수행합니다.
- Android 프로젝트에 Dalvik로 변환 된 JAR을 포함합니다.
- 프로젝트 소스 코드를 개발 (컴파일) 할 때 써드 파티 클래스를 찾기 위해 Eclipse에서 Java 정의를 사용할 수있게합니다.
타사 jar 파일이 프로젝트 "libs"폴더에 있고 응용 프로그램을 패키지화 할 때 .apk 파일에 저장되어 있는지 확인하십시오. jar의 무언가가 지원되지 않지만 내가 이것으로 큰 성공을 거두었다면 장치에서 런타임 오류가 나타날 수 있습니다.
라이브러리 프로젝트 설정
라이브러리 프로젝트는 표준 Android 프로젝트이므로 새 응용 프로그램 프로젝트와 같은 방식으로 새 프로젝트를 만들 수 있습니다.
라이브러리 프로젝트를 작성할 때 그림 1과 같이 애플리케이션 이름, 패키지를 선택하고 필요에 따라 다른 필드를 설정할 수 있습니다.
다음으로 프로젝트의 속성을 설정하여 프로젝트가 라이브러리 프로젝트임을 나타냅니다.
패키지 탐색기에서 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭하고 특성을 선택하십시오. 속성 창에서 왼쪽의 "Android"속성 그룹을 선택하고 오른쪽에서 라이브러리 속성을 찾으십시오. "라이브러리입니다"체크 상자를 선택하고 적용을 클릭하십시오. 확인을 클릭하여 속성 창을 닫습니다. 새 프로젝트는 이제 라이브러리 프로젝트로 표시됩니다. 아래 섹션에 설명 된대로 소스 코드와 리소스를 소스 코드로 옮길 수 있습니다.
ADT 버전 22를 사용하는 경우 프로젝트 빌드 경로의 주문 및 내보내기 탭에서 Android 종속성 및 Android 개인 라이브러리를 확인해야합니다.
먼저 접두사가 누락 된 문제입니다.
레이아웃 파일에서 써드 파티에서 가져온 것을 소비하는 경우, 아래 XML 구조의 여러 곳에서 발생하는 "droidfu :"와 같은 접두어도 사용해야합니다.
<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
android:layout_width="75dip"
android:layout_height="75dip"
android:background="#CCC"
droidfu:autoLoad="true"
droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
droidfu:progressDrawable="..."
/>
이것은 JAR에서 나오지만 새로운 "xmlns : droidfu"를 추가해야합니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:droidfu="http://github.com/droidfu/schema"
...>
또는 언 바운드 접두사 오류가 발생합니다. 나에게 이것은 타사 라이브러리의 페이지에서 제공된 예제를 모두 복사하여 붙여 넣지 못했습니다.
XML 구문 분석 오류 : 바인딩되지 않은 접두사
'/ playteddy / res'리소스가 없습니다.
위의 두 가지 오류가 발생하여 마침내 해결했습니다.
프로젝트-> 속성-> Java 빌드 경로-> googleadmobadsdk (선택하고 맨 위에 놓음)를 마우스 오른쪽 버튼으로 클릭하면 실행되고 문제가 해결됩니다. 내 런타임 오류가 해결되었습니다.
Put the source in a folder outside yourt workspace. Rightclick in the project-explorer, and select "Import..."
Import the project in your workspace as an Android project. Try to build it, and make sure it is marked as a library project. Also make sure it is build with Google API support, if not you will get compile errors.
Then, in right click on your main project in the project explorer. Select properties, then select Android on the left. In the library section below, click "Add"..
The mapview-balloons library should now be available to add to your project..
Go to build path in eclipse, then click order and export, then check the library/jar, and then click the up button to move it to the top of the list to compile it first.
참고URL : https://stackoverflow.com/questions/3642928/adding-a-library-jar-to-an-eclipse-android-project
'IT' 카테고리의 다른 글
주어진 HTML로 동적으로 iframe 만들기 (0) | 2020.07.02 |
---|---|
파이썬에서 중첩 된 dict를 어떻게 작성합니까? (0) | 2020.07.02 |
마우스 오른쪽 버튼을 클릭하고 '새로 만들기'를 선택하면 IntelliJ에 '클래스'가 표시되지 않습니다 (0) | 2020.07.02 |
파이썬과 BeautifulSoup을 사용하여 웹 페이지에서 링크를 검색 (0) | 2020.07.02 |
`git :`url을`http :`url로 변환하는 방법 (0) | 2020.07.02 |