AndroidStudio 컴파일 구성

3387 단어 Android
AndroidStudio 컴파일 구성
  • Module에서 제3자jar 패키지 합병
  • AndroidStudio 새 Module
  • 원생 모듈jar 패키지에 의존하는 해결 방법
  • Studio 구성 변경
  • 원본 컴파일 변경
  • Module에서 제3자jar 패키지 통합
    얼마 전에 설정한 것이 제때에 기록되지 않았기 때문에 다시 정리하고 제때에 갱신해야 한다. 그렇지 않으면 잊어버린 것이 많지 않다AndroidStudio 새 Module
    Android Developer 공식 문서 참조https://developer.android.com/studio/projects/android-library새 Module "File > New > New Module"을 설명합니다. 실제 필요에 따라 Jar Module를 선택하면 안드로이드 Library(.aar) 또는 Java Library(.jar)를 선택할 수 있습니다. 다른 점은 안드로이드 Library가 자원 공유를 지원할 수 있다는 것입니다.
    원생 모듈jar 패키지에 의존하는 해결 방법
    Studio 구성 변경 사항
  • gradle 수정 src 디렉터리 안드로이드 원본 디렉터리 트리는 보통 다음과 같은 구조
    ---src/
    ---res/
    ---AndroidManifest.xml
    ---Android.mk
    
    이지만 안드로이드스튜디오에서 만든 응용 프로젝트 디렉터리 구조는 app/src/main 디렉터리에 있습니다.
    ---java/
    ---res/
    ---AndroidManifest.xml
    
    디렉터리 구조를 바꾸지 않은 상황에서 원본 코드를 안드로이드스튜디오로 가져오기 위해서는 app/build가 필요합니다.gradle 파일에sourceSets 설정 추가:
    android {
    	...
    	sourceSets {
    		main {
    			java.srcDirs = ['../src']
    			res.srcDirs = ['../res']
    			manifest.srcFile = '../AndroidManifest.xml'
    		}
    	}
    	...
    }
    
  • 프레임워크 하이드 인터페이스 호출
  • platform 서명 app/build를 어떻게 사용하고 숨깁니까?gradle에서 다음과 같은 내용을 추가합니다:
    def keystorePropertiesFile = rootProject.file(".keystore")
    def keystoreProperties = new Properties();
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
    android {
    	signingConfigs {
        	debug {
            	keyAlias keystoreProperties['keyAlias']
           		keyPassword keystoreProperties['keyPassword']
            	storeFile file(keystoreProperties['storeFile'])
            	storePassword keystoreProperties['storePassword']
        	}
        	release {
            	keyAlias keystoreProperties['keyAlias']
            	keyPassword keystoreProperties['keyPassword']
            	storeFile file(keystoreProperties['storeFile'])
            	storePassword keystoreProperties['storePassword']
        	}
    	}
    }
    
    .keystore 및 platform.jks 서명 파일은 프로젝트의 루트 디렉터리에 놓으면 됩니다.
  • jar 패키지 compileonly 설정의 실제 디버깅 과정 중 프레임워크.jar는 apk에 컴파일할 필요가 없습니다. apk가 너무 크고 함수가 너무 많아서gradle 컴파일 실패를 방지할 수 있습니다. app/build을 수정해야 합니다.gradle:
    dependencies {
    	...
    	compileOnly files('libs/framework.jar')
    	...
    }
    
    루트 디렉터리의build를 동시에 수정합니다.gradle:
    allprojects {
    	...
    	gradle.projectsEvaluated {
        	tasks.withType(JavaCompile) {
            	options.compilerArgs << '-Xbootclasspath/p:app/libs/framework.jar'
        	}
    	}
    	...
    }
    
  • 여러 개의compileOnly에 의존하는jar 패키지가 필요하면bootclasspath에서 ":"구분 경로를 사용하십시오.compilerArgs 변수를 여러 번 설정하지 마십시오. 마지막 설정에 덮어쓰입니다
  • 중복된 종속 패키지 제거 "Program type already present"https://blog.csdn.net/Calvin_zhou/article/details/80880501

  • 원본 코드 컴파일 변경
  • 프레임워크로 원생jar 패키지를 가져옵니다.jar의 경우 원본 프로젝트에 대응하는out/target/common/obj/JAVALIBRARIES/framework_intermediates/classes.jar copy는 App 프로젝트의 app/libs/디렉터리에 있는 다음classes를 오른쪽 단추로 누르십시오.jar, "Add as libraries"를 선택하면 됩니다.
  • .jack 파일makefile 안드로이드 8.0 수정 후 기본적으로 Jack을 엽니다. 많은 원본 모듈이 컴파일된 후에classes만 생성됩니다.jack 파일, 해당 모듈에 있는 안드로이드가 필요합니다.mk에 JACK 추가ENABLED: = disabled, 그리고 다시 make module, 해당하는intermediates에서 classes를 찾을 수 있습니다.jar.절대로 원본 코드를 모두 인코딩하지 마십시오. 이 잭 파일에 의존하는 다른 모듈을 인코딩할 수 없습니다.
  • 좋은 웹페이지 즐겨찾기