2

다른 프로젝트 "라이브러리 의존적"의 라이브러리로 사용하려는 "CustomViews"프로젝트가 있습니다. 나는 종속 내 라이브러리에서 레이아웃으로 사용자 정의보기를 추가 할 때사용자 정의 속성의 네임 스페이스 자동 채우기

attrs.xml이

<resources> 

    <declare-styleable name="ToolbarITI"> 
     <attr name="rightIconSrc" format="integer"/> 
     <attr name="leftIconSrc" format="integer"/> 
     <attr name="titleText" format="string"/> 
     <attr name="iconPadding" format="dimension"/> 
     <attr name="fontName" format="string"/> 
    </declare-styleable> 

</resources> 

: 내보기 중 하나는, ToolbarITI 내가 내 ToolbarITI 클래스에서 처리 할 파일에 정의 된 소수의 사용자 정의 특성을가집니다 프로젝트에서 이러한 사용자 지정 특성을 xml 파일에 추가 할 수 있으며 특성이 적용됩니다. 그러나 프로세스를 성가신 것으로 만드는을 자동으로 채울 때 Android Studio는 ToolbarITI와 관련된 custom : 특성을 인식하지 못합니다. 내 레이아웃 파일 맨 위에 xmlns : custom을 선언했습니다.

이러한 속성이 라이브러리 프로젝트에 번들로 제공되고 Android 스튜디오에서 참조되는 방식을 이해하지 못했습니다. 누군가 어떻게 이것이 이루어 졌는지 설명 할 수 있다면 설명을 해주십시오!

+0

누구나 이보다 더 좋은 제목을 제안 할 수 있다면 매우 감사하겠습니다. –

답변

1

이것이 문제의 근원인지 확인하려면 누군가가 필요 하겠지만, 이것이 내가 발견 한 것입니다.

내 .aar를 com.tommcfarlin.lib에 업로드하고 있는데, "lib"를 사용하면 리소스가 무시됩니다 (Android Studio에 따라). 패키징 할 때 "깨는"결과가 나오면 자동 채우기를위한 리소스 ID를 추가하지 않아도 Android Studio의 기능이 확실히 저하되는지 확실하지 않습니다. 더 안전하게하고하지 마십시오.

다음은 Android Studio에서 맞춤 속성을 인식하는 단계입니다.

1) 나는 내 CustomViews 프로젝트에 내 build.gradle을 변경하십시오 com.tommcfarlin.customviews

def aarFile = file("build/${archivesBaseName}-${project.version}.aar") 
artifacts { 
    archives aarFile 
} 
uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "file:///C:/Users/tmcfarlin/AndroidProjects/myrepo") 
      pom.groupId = 'com.tommcfarlin.customviews' 
      pom.artifactId = 'CustomViews' 
      pom.version = '0.1.0' 
     } 
    } 
} 

2) 터미널에서 "Gradle을 uploadArchives"를 실행 참고

repositories { 
    maven { url 'file:///C:/Users/tmcfarlin/AndroidProjects/myrepo' } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.tommcfarlin.customviews:CustomViews:[email protected]' 
} 

4) I S : 3) 내 라이브러리에 종속 프로젝트에서 내 build.gradle에서 다음 줄을했다 gradle 파일로 프로젝트를 보았습니다. 이 후에도 여전히 속성을 볼 수 없습니다. I 도서관 종속 프로젝트를 폐쇄하고 다시 열었습니다 voila !!! 및 설정하는 방법을 배우면서이 웹 페이지 나에게 대단히 유용했다

<com.tommcfarlin.customviews.ToolbarITI 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    custom:fontName="helvetica.ttf"> 
</com.tommcfarlin.customviews.ToolbarITI> 

Ctrl 키 + 스페이스를 누르면 : 지금 내가 입력 한 "사용자 정의"할 때 내 사용자 지정보기의 속성이 나를 채워 않은 다음 블록을 가질 수있다 로컬 저장소. "lib"디렉토리를 사용하지 않도록하십시오! http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across

관련 문제