Android Studio 프로젝트에서 .jar를 만드는 방법
저는 Android Studio를 사용하고 있으며 다음과 같은 프로젝트를 진행하고 있습니다.

파란색 원 안에 있는 것은 myLib입니다.myLib는 빨간색 원 안에 있는 외부 lib와 아파치 패키지(녹색 원)를 사용해야 합니다.
이 모든 것을 하나의 .jar로 만들어서 다른 프로젝트에서 사용할 수 있도록 하고 싶습니다.
스텝 바이 스텝 가이드를 해주시면 감사하겠습니다.저는 개발업계의 초보자입니다.
감사합니다!
라이브러리 프로젝트의 build.gradle을 엽니다.
build.gradle에 두 가지 작업 -- deleteJar 및 createJar 및 createJar.dependsOn(deleteJar, build)을 추가합니다.
위의 코드:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
오른쪽에서 그래들 패널을 펼쳐 라이브러리 아래의 모든 작업을 엽니다.-> 기타.2개의 새로운 태스크가 표시됩니다.createJar와 deleteJar
createJar를 더블 클릭합니다.
태스크가 정상적으로 실행되면 createJar 태스크에서 언급된 경로(libs/xxxx.jar)에서 생성된 jar를 가져옵니다.
새로 생성된 jar를 필요한 프로젝트의 lib 폴더에 복사합니다.--> 오른쪽 클릭--> "라이브러리로 추가"를 선택합니다.
Gradle에서 코드를 플레인 Java 모듈로 설정하면 Gradle에서 jar 파일을 제공하는 것은 매우 간단합니다.그 jar 파일에는 당신의 코드만 있을 뿐, 의존하는 다른 Apache 라이브러리는 없습니다.이러한 방법으로 배포하는 것이 좋습니다.라이브러리 내에 의존성을 번들하는 것은 조금 이상합니다.또, 이러한 의존성을 유저 스스로 포함할 필요가 있는 것이 일반적입니다(그렇지 않으면, 이러한 프로젝트의 콜리젼이 이미 라이브러리의 카피를 링크 하고 있을 가능성이 있기 때문입니다).게다가 라이브러리를 퍼블리시 하는 경우, 다른 사람의 코드를 재배포하는 것에 관한 잠재적인 라이센스 문제를 회피할 수 있습니다.
컴파일이 필요한 코드를 항아리로 가져와서 Android Studio에서 별도의 플레인 Java 모듈로 이동합니다.
- [ File ]메뉴 > [ New Module ]...> Java 라이브러리
- 마법사에서 라이브러리, Java 패키지 이름 및 클래스 이름을 설정합니다. (클래스를 만들지 않으려면 모듈을 만든 후 삭제하면 됩니다.)
- Android 코드에서 새 모듈이 새 라이브러리의 코드를 사용할 수 있도록 새 모듈에 대한 종속성을 설정합니다.
- [ File ] > [ Project Structure ]> [ Modules ]> ( Android Module )> [ Dependencies ]> [ + ]> [ Module ]의 의존관계입니다.아래 스크린샷을 참조하십시오.

- 합니다.

프로젝트가 지금 정상적으로 구축되고 있기를 바랍니다.빌드 실행 후 Java 라이브러리용 jar 파일이 모듈 디렉토리의 빌드/libs 디렉토리에 배치됩니다.jar 파일을 수동으로 빌드하려면 Gradle 창에서 jar 빌드 파일 태스크를 실행할 수 있습니다.
Android Studio IDE에서 다음을 통해 "Run Anything(임의로 실행)" 바에 액세스합니다.
CTRL+CTRL +gradle CreateFullJarRelease+ENTER
프로젝트 이
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
또는
Gradle을 있다.Task에 그래들 로 []의 [그래플]의 [그래플]의 [그래플]에other더입니니다다
다음 아래로 을 하면 됩니다.createFullJarRelease클릭하여 클릭합니다.
그런 다음 프로젝트의 이 폴더에 있는 아티팩트를 찾을 수 있습니다.
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
이것을 Java 모듈의 build.gradle에 추가하기만 하면 됩니다.여기에는 아카이브에 종속 라이브러리가 포함됩니다.
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
[ module _ name ] / build / libs / [ module _ name ]가 됩니다.jar 파일
.jar 파일은 응용 프로그램을 컴파일/실행할 때 자동으로 생성됩니다.
class.jar 파일은 root_folder/app/build/intermediates/bundles/debug에서 찾을 수 있습니다.
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
Android Studio의 Gradle 탭으로 이동하여 Library project를 선택합니다.
다음으로 태스크로 이동합니다.
[기타(Other)
bundleReleaseaar를 더블 클릭합니다.
★★★★★★★를 찾을 수 있습니다..aar「」의 your_module/build/outputs/aar/your-release.aar
보충판 Android Studio (나는 Android Studio Arctic Fox | 2020.3.1 패치3 빌드 #AI-7717.56.2031.7784292)그래들 패널에서는 기본 태스크가 없습니다.Android Studio ---Settings--Experimental--Gradle 탭으로 이동하여 "Gradle 동기화 중 Gradle 작업 목록 작성 안 함" 선택을 취소한 다음 파일-Gradle 파일과 프로젝트 동기화를 클릭하면 작업이 Gradle 패널에 나타납니다.
다음 답변을 따르십시오.https://stackoverflow.com/a/52681317/4065069
프로젝트 컴파일러 출력(프로젝트 구조> 프로젝트)을 찾는 방법을 찾았습니다.그런 다음 jar로 전환하려는 모듈의 completed 폴더를 찾아 zip으로 압축하고 출력 확장자를 zip에서 jar로 변경합니다.
사용하시는 경우
apply plugin: 'com.android.library'
변환할 수 있습니다..aar -> .jar
Android Studio에서[더 보기] 그라들 태스크를 실행하는 경우
assembleRelease
//or
bundleReleaseAar
또는 터미널 경유
./gradlew <moduleName>:assembleRelease
//or
./gradlew <moduleName>:bundleReleaseAar
그러면 당신은 찾을 수 있을 것이다..aar에
<project_path>/build/outputs/aar/<module_name>.aar
//if you do not see it try to remove this folder and repeat the command
.aar[대략] file은 확장자가 aar인 zip 파일입니다.이 때문에, 치환할 수 있습니다..aar와 함께.zip또는 실행
unzip "<path_to/module_name>.aar"
이 답변이 받아들여지지 않는 경우
이것을 사용하다
task createJar(type: Copy) {
from('build/intermediates/packaged-classes/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'plugin.jar')
}
이것 대신에
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
언급URL : https://stackoverflow.com/questions/21712714/how-to-make-a-jar-out-from-an-android-studio-project
'programing' 카테고리의 다른 글
| Composer에게 다른 PHP 버전을 사용하도록 지시합니다. (0) | 2022.11.02 |
|---|---|
| 서브 쿼리를 사용한mysql 업데이트 쿼리 (0) | 2022.11.02 |
| 클리어하기 위한 리모트 접속DB heroku 데이터베이스 (0) | 2022.10.31 |
| javascript를 사용하여 정규 표현 특수 문자를 피하는 방법 (0) | 2022.10.31 |
| Reader와 InputStream의 차이점은 무엇입니까? (0) | 2022.10.31 |




