Android Studio/Gradle에서 작동하려면 매우 간단하지 않습니다. 나는 그것이 어떻게 작동하는지 아직도 말해야 만한다. 그러나 나는 많은 대답을 읽은 후에 마침내 작동하게 만들었다. 당신은 이러한 종속성이있는 프로젝트가 있다면
가 :
패키지, 사용-SDK 및 빈 응용 프로그램은 안드로이드 라이브러리에 대한 엄격한 최소 :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mymodule">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16"/>
<application />
</manifest>
모듈은이 구조에게 일을 얻을
- 모듈/빌드 (이 모듈/src/main/res (실제 코드)
- 모듈/src/main/java (실제 코드)
- 모듈/src/main/res (리소스 레이아웃 등)
- 모듈/SRC/메인/AndroidManifest.xml을
- 모듈/build.gradle (우리 Gradle을 설정)이 빌드로
내 첫 번째 모듈.Gradle을 모듈 프로젝트에 depens 것을
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
} } apply plugin: 'android-library'
repositories {
mavenLocal()
mavenCentral() }
dependencies {
compile 'com.android.support:support-v4:13.0.0'
compile project(':SecondModule') }
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
참고 파일 (: SecondModule)이 SecondModule를있는 프로젝트의 루트에있는도 build.gradle 파일이 있음을 의미합니다.
SecondModule build.gradle은 다음과 같습니다.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android-library'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:13.0.0'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
두 번째 모듈은 android support
을 제외한 다른 모듈에 의존하지 않습니다. 두 프로젝트 모두 빌드는 buildscript뿐만 아니라 빌드에 mavenLocal()
및 mavenCentral()
을 사용합니다. 기본 android-library
build.gradle 파일과의 차이점은 여기서 jar 파일 대신 maven에서 com.android.support:support-v4:13.0.0
을로드한다는 것입니다. 따라서 우리는 gradle이 n 번 추가 할 것을 두려워하지 않고 각 모듈에 의존성을 평화롭게 추가 할 수 있습니다. 그게 작동하려면, 당신은 구글 저장소와 안드로이드 지원 저장소를 설치해야합니다. 이 같은
MainApp Gradle을 파일보기 :
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:13.0.0'
compile project(':MyModule')
compile project(':SecondModule')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
이 파일 대신 안드로이드 라이브러리 플러그인의 안드로이드 플러그인을 적용합니다. 모든 것이 잘되면, 잘 컴파일되고 실행되어야합니다. 또한 프로젝트가 개발 단계에 있기 때문에 최신 버전이 설치되어 있는지 확인하십시오. 향후이 대답이 무의미해질 수 있습니다.
안드로이드 지원 병을 사용하지 말고 대신 메이븐 저장소를 사용하십시오. 단점은 컴파일하는 데 시간이 걸릴 수 있지만 작동 만한다는 것입니다.
'android-library'에서 gradle을 사용하는 방법을 알고 있습니까? 나는 그 문제가 있다고 생각한다. –
'android-library'를 쓰면 무슨 뜻인지 이해가 안 되니? – pepuch
간단히 말하면, 안드로이드 라이브러리는 애플리케이션에 병합 할 수있는 다른 프로젝트 일뿐입니다. 모든 리소스가 주 프로젝트와 병합됩니다. 어쨌든, 나는 생각이있다. 복잡한 빌드 프로세스 대신 모든 것을 하나의 모듈로 병합 할 수 있습니다. android 라이브러리와 android 응용 프로그램의 주요 차이점은 응용 프로그램 섹션이없는 것입니다. 즉, 하나의 프로젝트에서 모든 것을 단순화 할 수 있도록 응용 프로그램 섹션을 강제 실행하는 버그가 있으며 작동하지 않을 때까지 최대한 분할합니다. –