Android 프로젝트에서 외부 JAR을 어떻게 사용합니까?
Android 프로젝트를 만들고 외부 JAR (hessian-4.0.1.jar)을 내 프로젝트에 추가했습니다. 그런 다음 JAR을 빌드 경로에 추가하고 주문 및 내보내기에서 확인했습니다.
주문 및 내보내기는 무시되고 런타임에 외부 JAR의 모든 클래스가 누락됩니다.
Eclipse 플러그인을 사용하여 Android 애플리케이션을 빌드 할 때 외부 JAR에서 필요한 클래스를 올바르게 포함시키는 트릭이 있습니까? 나는 개미 또는 메이븐을 사용하고 싶지 않습니다.
이클립스
Android 프로젝트 또는 Java 프로젝트에 외부 JAR을 추가하는 좋은 방법은 다음과 같습니다.
libs
프로젝트의 루트 폴더에 있는 폴더를 만듭니다- 당신의 복사 받는 JAR 파일을
libs
폴더 이제 Jar 파일을 마우스 오른쪽 버튼으로 클릭하고 빌드 경로> 빌드 경로에 추가를 선택 하면 프로젝트 내에 'Referenced Libraries'라는 폴더가 생성됩니다.
이렇게하면 프로젝트를 다른 컴퓨터로 전송할 때마다 하드 드라이브에서 참조되는 라이브러리 가 손실되지 않습니다 .
안드로이드 스튜디오
- 프로젝트 탐색기의 Android View에 있는 경우 아래와 같이 Project View로 변경하십시오.
- 외부 라이브러리를 추가 할 원하는 모듈을 마우스 오른쪽 단추로 클릭 한 후 새로 작성> Directroy 를 선택 하고 이름을 ' libs '로 지정하십시오.
- 이제 blah_blah.jar 을 ' libs '폴더에 복사하십시오.
- blah_blah.jar을 마우스 오른쪽 단추로 클릭 한 후 ' 라이브러리로 추가. '를 선택하십시오 . 그러면 컴파일 파일 ( 'libs / blah_blah.jar') 로 build.gradle에 자동으로 추가 및 입력되고 gradle이 동기화됩니다. 그리고 당신은 끝났습니다
참고 : 타사 라이브러리를 사용하는 경우 gradle 스크립트가 실행될 때 Gradle 스크립트가 JAR 및 종속 JAR을 자동으로 다운로드하는 전이 종속성 을 사용하는 것이 좋습니다 .
예 : 'com.google.android.gms : play-services-ads : 9.4.0'컴파일
Gradle Dependency Mangement 에 대해서 더 읽어보세요.
예, 사용할 수 있습니다. 방법은 다음과 같습니다.
- 프로젝트-> 마우스 오른쪽 버튼으로 클릭-> 가져 오기-> 파일 시스템-> yourjar.jar
- 프로젝트-> 마우스 오른쪽 버튼으로 클릭-> 속성-> Java 빌드 경로-> 라이브러리-> Jar 추가-> yourjar.jar
이 비디오 는 문제가있는 경우에 유용 할 수 있습니다.
현재 SDK 20.0.3을 사용하고 있으며 이전 솔루션 중 어느 것도 효과가 없었습니다.
hessdroid가 hess가 실패한 곳에서 작동하는 이유는 두 jar 파일에 다른 가상 머신 용으로 컴파일 된 java가 포함되어 있기 때문입니다. Java 컴파일러가 작성한 바이트 코드는 Dalvik 가상 머신에서 실행되도록 보장되지 않습니다. Android 컴파일러에서 작성된 바이트 코드는 Java 가상 머신에서 실행되도록 보장되지 않습니다.
필자의 경우 소스 코드에 액세스 할 수 있었고 여기에 설명 된 방법을 사용하여 Android jar 파일을 만들 수있었습니다. https://stackoverflow.com/a/13144382/545064
OP가 Eclipse 플러그인과 관련하여 질문을 끝내는 것을 알고 있지만 Eclipse를 지정하지 않은 검색으로 여기에 도착했습니다. 그래서 여기 Android Studio로갑니다.
jar
libs 디렉토리에 파일 추가 (예 : 복사 / 붙여 넣기)jar
파일을 마우스 오른쪽 버튼으로 클릭 하고 "라이브러리로 추가 ..."를 선택하십시오.- 다음 대화 상자에서 "확인"을 클릭하거나 원하는 경우 이름을 바꿉니다.
그게 다야!
내 스택 추적에서 충분히 잘 보이지 않았지만 외부 JAR이 포함되어 있지 않다는 것이 문제입니다.
문제는 Android 플랫폼에 javax.naming. * 및 외부 JAR에 종속 된 많은 다른 패키지가 누락되어 있다는 것입니다.
외부 JAR 파일을 추가하고 Eclipse에서 주문 및 내보내기를 설정하면 Android 프로젝트에서 예상대로 작동합니다.
현재 프로젝트로 이동
RightClick-> 속성-> Java 빌드 경로-> JAR 파일을 라이브러리에 추가-> 확인을 클릭하십시오.
그런 다음 현재 프로젝트의 참조 라이브러리 파일에 추가됩니다.
Android의 Java API는 javax.naming. * 및 기타 많은 javax. * 기능을 지원하지 않습니다. 종속성을 별도의 항아리로 포함해야합니다.
Android Studio를 사용하는 경우 다음을 수행하십시오 (@Vinayak Bs 답변을 복사하고 수정했습니다).
- 패키지 또는 Android 대신 프로젝트 측경에서 프로젝트보기를 선택하십시오.
- 프로젝트의 루트 폴더에 libs 라는 폴더를 만듭니다.
- JAR 파일을 libs 폴더로 복사
- 측 경이 업데이트되고 JAR 파일이 프로젝트에 표시됩니다.
- 가져 오려는 각 JAR 파일을 마우스 오른쪽 단추로 클릭 한 다음 "라이브러리로 추가 ..."를 선택하십시오.이 파일이 프로젝트에 포함됩니다.
- 그런 다음 코드에서 새 클래스를 참조하기 만하면됩니다 (예 :
import javax.mail.*
gradle을 사용하는 경우 android studio에서
이것을 build.gradle에 추가하십시오
compile fileTree(dir: 'libs', include: ['*.jar'])
jar 파일을 libs 폴더에 추가하십시오.
gradle build system을 사용하는 경우 다음 단계를 수행하십시오.
안드로이드 앱의
jar
각libs
폴더에 파일을 넣으 십시오. 당신은 일반적으로 그것을 발견 할 것이다Project
>app
>libs
. 경우libs
폴더가없는, 하나를 만들 수 있습니다.이것을
build.gradle
파일에 추가 하십시오app
. (다른에Project
의build.gradle
)dependencies { compile fileTree(dir: 'libs', include: '*.jar') // other dependencies }
폴더에
jar
사용 가능한 모든 파일 이 포함됩니다libs
.
모든 jar
파일 을 포함하지 않으려면 개별적으로 추가 할 수 있습니다.
compile fileTree(dir: 'libs', include: 'file.jar')
프로젝트 안에 lib와 같은 폴더를 만들고 jar을 해당 폴더에 복사하십시오 . 이제 프로젝트를 마우스 오른쪽 버튼으로 클릭하여 빌드 경로 를 구성 하십시오. 빌드 경로를 선택하십시오.
'항아리 추가' 당신이 만든 폴더로 이동을 하고 선택 항아리를.
.jar 파일을 Android 프로젝트 폴더로 복사하는 것이 항상 가능한 것은 아닙니다.
특히 작업 공간에있는 다른 프로젝트의 결과물이며 계속 업데이트됩니다.
이 문제를 해결하려면 jar 파일을 가져 오는 대신 로컬로 복사하는 대신 프로젝트에 링크 된 파일로 추가해야합니다.
UI에서 다음을 선택하십시오.
프로젝트-> 가져 오기-> 파일 시스템-> yourjar.jar-> (옵션 영역) 고급-> 작업 공간에서 링크 작성.
링크는 .project 파일에 저장 됩니다.
<linkedResources>
<link>
<name>yourjar.jar</name>
<type>1</type>
<locationURI>PARENT-5-PROJECT_LOC/bin/android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
</link>
</linkedResources>
PARENT-5-PROJECT_LOC
프로젝트 파일을 기준으로 5 개의 디렉토리 (../../../../../)를 의미합니다.
그런 다음 라이브러리에 추가하십시오 :
프로젝트-> 특성-> Java 빌드 경로-> 라이브러리-> Jar 추가-> yourjar.jar
같은 창에서 주문 및 내보내기 탭을 선택하고 항아리에 표시하여 apk에 추가하십시오.
참고 URL : https://stackoverflow.com/questions/1334802/how-can-i-use-external-jars-in-an-android-project
'Programing' 카테고리의 다른 글
"만들기"에 대한 인수 전달 (0) | 2020.03.06 |
---|---|
탭 대신 공백을 사용하도록 메모장 ++을 구성하려면 어떻게해야합니까? (0) | 2020.03.06 |
decodeURIComponent와 decodeURI의 차이점은 무엇입니까? (0) | 2020.03.06 |
params 키워드를 사용하는 이유는 무엇입니까? (0) | 2020.03.06 |
하나의 명령으로 MySQL 데이터베이스의 모든 테이블을 자르시겠습니까? (0) | 2020.03.06 |