2013-10-28 5 views
9

Ich hat versucht, ein Android-Projekt mit der folgenden build.gradle Datei zu kompilieren:gradle Fehler beim Thema declare-styleable in zwei Bibliotheken

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.6.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    maven { 
     url 'https://github.com/Goddchen/mvn-repo/raw/master/' 
    } 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 18 
    } 
} 

dependencies { 
     compile 'com.android.support:appcompat-v7:18.0.+' 
     compile 'com.android.support:support-v4:18.0.+' 

     compile 'com.google.android.gms:play-services:3.2.+' 

     compile 'com.facebook.android:facebook:3.5.+' 
     compile 'com.android:volley:1.0' 
     compile 'org.jraf:android-switch-backport:1.0' 

} 

Aber das schlägt mit dem folgenden Fehler:

:TestProject:processDebugResources 
/home/lukas/apps/Splots_test/apps/TestProject/build/res/all/debug/values/values.xml:1622: error: Error: No resource found that matches the given name: attr 'switchStyle'. 
:TestProject:processDebugResources FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':TestProject:processDebugResources'. 
> Could not call IncrementalTask.taskAction() on task ':TestProject:processDebugResources' 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Nach dem Betrachten der generierten values.xml habe ich festgestellt, dass es den declare-styleable "Theme" -Abschnitt von android-switch-backport vermisst.

Dieser Abschnitt ist definiert sowohl AppCompat und AndroidSwitchBackport, aber nur einer von ihnen ist in der letzten Datei enthalten:

[email protected]:~/apps/Splots_test/apps$ grep -r 'declare-styleable name="Theme"' . 
./TestProject/build/exploded-bundles/ComAndroidSupportAppcompatV71800.aar/res/values/values.xml: <declare-styleable name="Theme"> 
./TestProject/build/exploded-bundles/OrgJrafAndroidSwitchBackport10.aar/res/values/values.xml: <declare-styleable name="Theme"> 

Gibt es eine Möglichkeit, es zu sagen Gradle sollten die Attribute der beiden Bibliotheken zusammenführen?

Antwort

1

Nur damit Sie wissen, ich bin der Entwickler des Switch Backport-Bibliothek, und dieses Problem nicht mehr existiert seit Version 1.3.1 .

(Stellen Sie sicher, dass Sie den richtigen Repo beim Upgrade enthalten, da es nicht mehr zentral ist).

+0

Danke, das ist wirklich geschätzt :) –

5

Ich laufe auch auf dieses Problem.Ich denke, Sie müssen die attrs.xml-Datei in Android-Switch-Backport-Bibliothek ändern.

Versuchen Sie, diese zu ändern

<declare-styleable name="Theme"> 
     <attr name="switchStyle" format="reference" /> 
     <attr name="switchPreferenceStyle" format="reference" /> 
</declare-styleable> 

dazu:

<declare-styleable name="AppTheme"> 
     <attr name="switchStyle" format="reference" /> 
     <attr name="switchPreferenceStyle" format="reference" /> 
</declare-styleable> 
+0

bedeutet dies die Bibliothek neu kompilieren? – GorillaApe

+1

@Parhs Ja, wir müssen. Weil es einen Namenskonflikt zwischen Android-Switch-Backport-Bibliothek und App-Compat-Bibliothek gibt. – Koruk

+0

@Koruk Wie machst du das, wenn du es von deinem build.gradle installierst? Sie müssen die Bibliothek selbst herunterladen? wovon? –

Verwandte Themen