programing

apk로 컴파일하지 않고 Android 프로젝트를 라이브러리로 Import하는 방법(Android studio 1.0)

newsource 2022. 12. 26. 20:29

apk로 컴파일하지 않고 Android 프로젝트를 라이브러리로 Import하는 방법(Android studio 1.0)

다른 프로젝트(projAPK)의 의존관계로서 프로젝트(projLib)를 Import하려고 했습니다.

projAPK gradle에는 다음이 있습니다.

dependencies {
    compile project(':libs:NewsAPI')
    compile project(':projLib')
}

그라들을 동기화하면 다음과 같은 오류가 발생합니다.

오류:Dependency Android_2015:projLib:프로젝트프로지에서 지정되지 않았습니다APK는 컴파일 의존관계로서 지원되지 않는APK 아카이브로 해결됩니다.파일: /Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-signed.ap

이에 대한 해결책은 두 가지가 있을 것 같습니다.

  1. 어떻게든 gradle에게 projLib은 apk에 컴파일되어서는 안 되는 라이브러리라고 생각하게 한다.
  2. 어떻게든 gradle을 projLib을 명시적으로 컴파일하지 않도록 한다.

문제는 어떻게 해야 할지 모르겠다는 거예요.도와주시면 감사하겠습니다. :)

projLib의 build.gradle 파일에는 다음과 같은 문장이 있습니다.

apply plugin: 'com.android.application'

그래들에게 어플리케이션으로 빌드하고 APK를 생성하도록 지시합니다.다음과 같이 변경하면:

apply plugin: 'com.android.library'

AAR을 생성하여 라이브러리로 구축하면 작동하게 됩니다.

또한 별도의 APK를 생성하기 위해 projLib가 필요한 경우 필요한 공통 코드를 세 번째 라이브러리 모듈로 꺼내 양쪽 APK에 의존하도록 리팩터링을 수행해야 합니다.

라이브러리는 다음을 설정할 수 없습니다.applicationId에러 메세지가 표시되었을 경우는, 라이브러리의 빌드 스크립트에서 삭제해 주세요.

모듈 그래들 파일에서-

교체하다 apply plugin: 'com.android.application'와 함께apply plugin: 'com.android.library'

다음으로 삭제한다. applicationId "xxx.xxx.xxxx"

청소 및 구축

이 행들을 라이브러리에 추가하세요.gradle파일링 및 기타 섹션 삭제

apply plugin: 'com.android.library'

android {
   compileSdkVersion 23
   buildToolsVersion '23.0.2'
}

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.squareup.picasso:picasso:2.4.0'
   compile 'com.google.code.gson:gson:2.2.4'
   compile 'com.android.support:appcompat-v7:23.1.1'
   compile 'com.android.support:gridlayout-v7:23.1.1'
  ,...
}

Kotlin DSL(build.gradle.kts)의 경우 다음 표기를 사용합니다.

plugins {
    id("com.android.library")
    // ...
}

언급URL : https://stackoverflow.com/questions/27536491/how-to-import-android-project-as-library-and-not-compile-it-as-apk-android-stud