지원

2014-11-16 3 views
0

내가 테스트 프로젝트에 RecyclerView를 사용하려고하면 임 안드로이드 5.0 롤리팝을 시도하려고, 내가 볼 수있는 구글 사이트에서 다음지원

enter image description here

1) 나를 괴롭히는 이유는 API 21에서 제공된 "실제"것 대신 지원되는 것을 사용한다는 것입니다. 디바이스에서 5.0을 실행하고 있으므로 지원 패키지를 사용하지 않을 것으로 예상했습니다. SDK 21이 다운로드되어 설치되었습니다. 왜 지원을 사용하지 않고 RecyclerView를 직접 사용할 수 있습니까?

enter image description here

추가 정보없이 "요소 RecyclerView 여기에 허용되지 않습니다"

2) 클래스는 안드로이드 스튜디오에서 를 찾을 수 없습니다,이 오류가 발생합니다. 또한 제가 위에서 게시 된 예를 사용하는 경우, 내가 같은 오류 얻을 :

enter image description here

를 내가 클릭하면 "빌드 경로 수정"나는 참조 : 항상

enter image description here

내가 JAVA 및 Android를 사용하여 이러한 문제가 발생하지만 오류 메시지가 명확하지 않습니다. sdk에 대한 경로가 정확합니다 (SDK 위치에서).

내 Gradle을 수 있습니다 :

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "19.1.0" 

    defaultConfig { 
     applicationId "se.snapcode.lollipoptest" 
     minSdkVersion 21 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

이 내 매니페스트입니다 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="se.snapcode.lollipoptest" > 

    <uses-sdk android:minSdkVersion="21" 
     android:targetSdkVersion="21" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

답변

0

나는 완전히 내 첫 번째 대답을 파괴하기 때문에, ...의 상단에서 다시 해보자

What puzzles me is that they use the support thing instead of the "real" thing as provided in API 21.

"진짜"것은 없습니다. RecyclerViewrecyclerview-v7 도서관 프로젝트/AAR을 통해 Android 지원 패키지에만 있습니다.

이 구글이 ViewPager (support-v4support-v13), CardView (cardview-v7)를 패키지 방식에 가깝다는 안드로이드 TV의 린백 UI (leanback-v17) 등

안드로이드 지원 라이브러리는 백 포트 단지 설정되어 있지 않습니다 . 해당 라이브러리를 통해서만 사용할 수있는 다양한 클래스가 포함됩니다. 위의 내용 외에도 NavUtils, FileProvider 및 Android 지원 라이브러리의 "기본"인 기타 다양한 클래스가 있습니다.당신이 RecyclerView을 원하는 경우

그래서, 안드로이드 스튜디오를 통해 같은 프로젝트에 recyclerview-v7을 추가

Dependencies Screenshot

또는 통해

Libraries Screenshot

당신의 app 모듈의 build.gradle :

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:recyclerview-v7:21.0.0' 
} 
+0

내가 참조. 얼마나 실망 스럽습니까. 나는 그러한 지원 라이브러리를 결코 좋아하지 않았다. 그래서, 그들을 가져 오기 위해서, 당신은 단지 ... 무엇을 기울여야할까요? 프로젝트 속성에 들어가서 종속성으로 이동하면 더하기 기호 -> 라이브러리를 클릭 한 다음 목록과 함께 ... support-v4, support-v13, appcompat-v7 및 기타 항목을 볼 수 있습니다. 그것들 중 누구입니까? Appcompat-v7? 일부 gradle 파일은 다음과 같이 씁니다. 'com.android.support:recyclerview-v7:+'를 컴파일하십시오. 나에게 전혀 의미가 없습니다. – Ted

+0

그리고 지원 -v4와 지원 -v13의 차이점은 무엇입니까? – Ted

+0

@ 테드 : "그것들 중 누구야?" - 네, 업데이트 된 답변을보십시오. "지원 - v4와 지원 -v13의 차이점은 무엇입니까?" -'support-v13'는'minSdkVersion'이 13 이상에만 해당하는'ViewPager'와 관련된 클래스를 포함하여'support-v4'의 명확한 상위 집합입니다. – CommonsWare