2014-07-02 2 views
26

Próbuję zmienić motyw holo aplikacji HelloWorld na temat Material.Light.DarkActionBar (jak powiedział serwis What's new Android Development tools). Ale mam błąd. Próbuję zmienić docelową wersję pakietu SDK na 21. Ale nie mieliśmy 21 SDK w Menedżerze SDK. W tej sesji, powiedzieli, ustaw xml stylu dla v-21.Nie znaleziono zasobu, który pasuje do podanej nazwy "android: Theme.Material.Light.DarkActionBar"

Wartości/styles.xml

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 

</resources> 

wartościach V21/styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    !-- Base application theme. --> 
    <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 
</resources> 

build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 20 
    buildToolsVersion "20.0.0" 

    defaultConfig { 
     applicationId "com.ramapps.helloworld" 
     minSdkVersion 15 
     targetSdkVersion 20 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

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

Błąd:

Error:Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light.DarkActionBar'. 
Error:Execution failed for task ':app:processDebugResources'. 
> com.android.ide.common.internal.LoggedErrorException: Failed to run command: 
    /Applications/Android Studio.app/sdk/build-tools/android-4.4W/aapt package -f --no-crunch -I /Applications/Android Studio.app/sdk/platforms/android-20/android.jar -M /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/intermediates/manifests/debug/AndroidManifest.xml -S /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/intermediates/res/debug -A /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/intermediates/assets/debug -m -J /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/generated/source/r/debug -F /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/intermediates/libs/app-debug.ap_ --debug-mode --custom-package com.ramapps.helloworld -0 apk 
    Error Code: 
    1 
    Output: 
    /Users/Ram_PC/Ram/MyDrive/My_Workspaces/Android_Studio_Workspace_L/HelloWorld/app/build/intermediates/res/debug/values-v21/values.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light.DarkActionBar'. 
+1

* Ale nie mieliśmy 21 SDK w Menedżerze SDK. * Co ci to mówi? Powinieneś też prawdopodobnie zmienić swój plik manifestu XML dla wersji API. –

+0

@ThorstenDittmar W Menedżerze SDK wspomnieli jak Android L (API 20, L podgląd). Również próbowałem ustawić wersję minSDK w manifeście xml.Ale nie działa – Ramprasad

+1

AFAIK API20 jest mniej więcej dla urządzeń do noszenia (jak widać w Twoim błędzie używa Androida-4.4W). Zmiana _compileSdkVersion_ na _'android-L'_ mogłaby pomóc. – harism

Odpowiedz

29

Można spróbować ustawić wartości w build.gradle tak (zaktualizowane do API 25):

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 
    defaultConfig { 
    minSdkVersion 21 //oldest version you would like to support 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    ... 
    } 
} 
+0

Działa świetnie. – Ramprasad

+1

To nie zadziała dla API <21? – MeetM

+0

Nie testowałem tego, ale mogę zmienić na 'minSdkVersion 16' i nadal działa dobrze. – theyanu

8

Nie możemy instalować aplikacje, które zwalczają L Podgląd na nic, ale L pomysłowość.

Zmiana res/values/styles.xml, Theme.Material.Light na Theme.Light i po build.gradle dla mnie.

android { 
    compileSdkVersion 20 
    buildToolsVersion '20.0.0' 
    defaultConfig { 
     applicationId 'com.example.android.market.licensing' 
     minSdkVersion 13 
     targetSdkVersion 20 
     versionCode 1 
     versionName '1.0' 
    } 

Chociaż Theme.Material.Light jest częścią wersji 20sdk ale jakoś to nie działa dla mnie.

1

Myślę, że problem polega na tym, że musisz ustawić swoją buildToolsVersion na wersję z Androidem L.

Oto moja Gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.1.0" 

    defaultConfig { 
     applicationId "com.mayuonline.ribbit" 
     minSdkVersion 15 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    // You must install or update the Support Repository through the SDK manager to use this dependency. 
    compile 'com.android.support:support-v13:19.+' 
} 

Upewnij się także, aby zmienić styles.xml jak poniżej

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="AppTheme" parent="android:Theme.Light"> 
    </style> 
</resources> 

To powinno rozwiązać problem.

3

Set Target z aplikacji do API poziom 21 z AssemblyMenifest.xml lub dodać <uses-sdk android:targetSdkVersion="21" android:minSdkVersion="19" /> tag do AssemblyMenifest.xml

2

zmieniłem Theme.Material.Light do Theme.Light i pracował dla mnie .

+0

Tak, to działało również dla mnie i nie zapomnij zrobić: "tns przygotować Androida", a następnie: "tns przygotować Androida" – mzalazar