라이브러리 추가/J이클립스 안드로이드 프로젝트의 AR
이 질문은 이클립스의 Android 프로젝트에 타사 라이브러리(JAR)를 추가하는 것과 관련된 2부 질문입니다.
질문의 첫 번째 부분은 Android 프로젝트에 타사 JAR(라이브러리)를 추가하려고 하면 먼저 다음과 같은 문제가 발생한다는 것입니다.
XML 구문 분석 오류: 바인딩되지 않은 접두사
왜냐하면 해당 JAR의 클래스를 사용하려고 하기 때문입니다(그리고 접두사가 어떻게든 정의되어야 합니다).무슨 일이야?
둘째, (아래의 답변을 수정한 후) 내 애플리케이션이 Android에서 작동하지 않고 디버거(LogCat)를 통해 내가 사용하려는 클래스가 존재하지 않는다는 것을 알게 됩니다.
원인: java.lang.ClassNotFoundException: com.github.droidfu입니다.위젯웹 이미지 보기...
Eclipse에서 컴파일 또는 링커 오류가 발생하지 않을 때 에뮬레이터에서 이 문제가 발생하는 이유는 무엇입니까?
이 두 가지 질문은 수사학적인 질문입니다. 제가 아래에서 직접 답변을 드리겠습니다.이 포럼의 다른 게시물들은 그 문제로 다가가고 다른 곳에서는 토론이 있지만, 저는 다음 사람이 오는 데 더 명시적으로 도움이 될 수 있다고 생각합니다.
이제 수업 누락 문제입니다.
저는 Eclipse Java EE 개발자이며 빌드 경로의 "사용자 라이브러리" 메커니즘을 통해 타사 라이브러리를 추가하는 습관을 수년간 가지고 있습니다.물론 제3자 도서관을 추가하는 방법은 최소 3가지가 있는데, 제가 사용하는 것이 가장 우아하다고 생각합니다.
그러나 Dalvik "JVM"이 일반 Java 컴파일 클래스를 처리할 수 없지만 특수 형식으로 변환해야 하는 Android의 경우에는 이 기능이 작동하지 않습니다.내가 원하지 않는 방식으로 라이브러리를 추가하는 경우에는 이러한 일이 발생하지 않습니다.
대신 타사 라이브러리를 가져온 다음 빌드 경로를 사용하여 추가하는 지침을 따릅니다(편집 목적으로 이클립스에 알려짐).다음은 단계별입니다.
- 라이브러리를 호스트 개발 시스템에 다운로드합니다.
- Eclipse/Android 프로젝트에 새 폴더 libs를 만듭니다.
- libs를 마우스 오른쪽 버튼으로 클릭하고 Import -> General -> File System을 선택한 다음 Next, Browse in file system을 선택하여 라이브러리의 상위 디렉토리(즉, 다운로드한 위치)를 찾습니다.
- 확인을 클릭한 다음 왼쪽 창에서 확인란이 아닌 디렉터리 이름을 클릭한 다음 오른쪽 창에서 관련 JAR을 확인합니다.이렇게 하면 실제 프로젝트에 라이브러리가 포함됩니다.
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 빌드 경로 -> 빌드 경로 구성을 선택한 다음 라이브러리 탭을 클릭하고 JAR 추가...를 클릭하여 libs 디렉토리에서 새 JAR로 이동하여 추가합니다. (참고로, 이 순간은 새 JAR이 Android에서 사용하도록 변환되는 순간입니다.)
메모
lib가 이미 빌드 경로에 포함되어 있는 경우 5단계가 필요하지 않을 수 있습니다.추가하기 전에 먼저 존재를 확인하십시오.
여기서 수행한 작업은 다음 두 가지를 달성합니다.
- Android 프로젝트에 Dalvik 변환 JAR을 포함합니다.
- 프로젝트의 소스 코드를 개발(즉, 컴파일)할 때 타사 클래스를 찾기 위해 이클립스에서 Java 정의를 사용할 수 있도록 합니다.
타사 병이 프로젝트 "libs" 폴더에 있는지 확인하고 응용 프로그램을 패키지화할 때 .apk에 저장됩니다.병에 있는 것이 지원되지 않는 경우 장치에서 런타임 오류를 볼 수 있지만, 그 외에는 이 작업이 크게 성공했습니다.
라이브러리 프로젝트 설정
라이브러리 프로젝트는 표준 Android 프로젝트이므로 새 응용 프로그램 프로젝트와 동일한 방법으로 새 프로젝트를 만들 수 있습니다.
라이브러리 프로젝트를 만들 때는 그림 1과 같이 응용프로그램 이름, 패키지를 선택하고 필요에 따라 다른 필드를 설정할 수 있습니다.
그런 다음 라이브러리 프로젝트임을 나타내도록 프로젝트 속성을 설정합니다.
패키지 탐색기에서 라이브러리 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.속성 창에서 왼쪽에 있는 "Android" 속성 그룹을 선택하고 오른쪽에 있는 라이브러리 속성을 찾습니다.라이브러리 있음 확인란을 선택하고 적용을 클릭합니다.확인을 클릭하여 속성 창을 닫습니다.새 프로젝트는 이제 라이브러리 프로젝트로 표시됩니다.아래 섹션에 설명된 대로 소스 코드와 리소스를 해당 코드로 이동할 수 있습니다.
ADT 버전 22를 사용하는 경우 프로젝트 빌드 경로의 Order & Export 탭에서 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 구문 분석 오류: 바인딩되지 않은 접두사
'/playeddy/res' 리소스가 없습니다.
저는 위의 두 가지 오류를 얻었고 마침내 해결했습니다.
프로젝트 -> 속성 -> java 빌드 경로 -> googleadmobadsdk(선택하여 맨 위에 놓음)를 마우스 오른쪽 버튼으로 클릭한 후 실행하면 문제가 해결됩니다.그것은 나의 런타임 오류를 해결했습니다.
작업영역 외부의 폴더에 소스를 넣습니다.프로젝트 탐색기를 마우스 오른쪽 단추로 클릭하고 "가져오기..."를 선택합니다.."
작업영역에 있는 프로젝트를 Android 프로젝트로 가져옵니다.빌드를 시도하고 라이브러리 프로젝트로 표시되었는지 확인합니다.또한 Google API 지원으로 빌드되었는지 확인하십시오. 그렇지 않으면 컴파일 오류가 발생합니다.
그런 다음 프로젝트 탐색기에서 기본 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.속성을 선택한 다음 왼쪽에 있는 Android를 선택합니다.아래 라이브러리 섹션에서 "추가"를 클릭합니다.
이제 지도 보기 풍선 라이브러리를 사용하여 프로젝트에 추가할 수 있습니다.
이클립스에서 빌드 경로로 이동한 다음 순서 및 내보내기를 클릭하고 라이브러리/병을 확인한 다음 위쪽 단추를 클릭하여 목록의 맨 위로 이동하여 먼저 컴파일하십시오.
언급URL : https://stackoverflow.com/questions/3642928/adding-a-library-jar-to-an-eclipse-android-project
'itsource' 카테고리의 다른 글
푸시되지 않은 깃 커밋 제거 (0) | 2023.05.07 |
---|---|
mongoose의 많은 부분을 업데이트합니다. (0) | 2023.05.07 |
회사 이름은 어디에 설정합니까? (0) | 2023.05.07 |
특정 디렉토리에 직접 ssh할 수 있는 방법은 무엇입니까? (0) | 2023.05.07 |
pyvenv-3.4가 0이 아닌 종료 상태 1을 반환했습니다. (0) | 2023.05.07 |