2013-07-19 12 views
5

Ich brauche mit Gradle ein Android-Projekt zu erstellen, die auf einem Android-Bibliotheksprojekt A abhängt, die auf einer anderen Android-Bibliothek Projekt B. hängtAndroid Studio - Erstellen Ihnen ein Android-Projekt mit Android-Bibliothek, die auf einer anderen Android-Bibliothek hängt

bisher habe ich folgendes:

Android-Projekt:

build.gradle:

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

apply plugin: 'android' 

dependencies { 
    compile project(':LibA') 
} 

android { 
    compileSdkVersion 7 
    buildToolsVersion "17.0.0" 
} 

manifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.cyborg.template" 
    android:versionCode="1" 
    android:versionName="1.0" > 

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

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name="com.cyborg.template.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> 

Android-Bibliothek A:

build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 

apply plugin: 'android-library' 

dependencies { 
    compile project(':LibB') 
} 


android { 
    compileSdkVersion 7 
    buildToolsVersion "17.0.0" 
} 

manifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.lib.project.a" 
      android:versionCode="1" 
      android:versionName="1.0"> 

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

</manifest> 

Android Bibliothek B:

build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 

    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 

apply plugin: 'android-library' 

android { 
    compileSdkVersion 7 
    buildToolsVersion "17.0.0" 
} 

manifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.lib.project.b" 
      android:versionCode="1" 
      android:versionName="1.0"> 

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

</manifest> 

Bei dem Versuch, das Android-Projekt zu erstellen, wird die folgenden Fehler von Android Studio berichten:

Gradle: Execution failed for task ':LibA:processDebugManifest'. 
    > Manifest merging failed. See console for more info. 

Wo ist die Konsole ist ich nehme an, für weitere Informationen über den Fehler suchen?

Ich habe einige Fragen zu diesem Fehler gefunden, aber es scheint nicht der gleiche Fall zu sein wie meiner.

Erleuchtung?

Danke, Adam.

Antwort

6

Die Manifestdateien für die Bibliothek müssen aktuell einen <application /> Knoten haben, auch wenn dieser leer ist.

Es ist eine Einschränkung, die wir irgendwann entfernen werden, aber jetzt einfach hinzufügen.

+0

Ich habe dies irgendwo gelesen und dachte, dass nur LibA den Anwendungsknoten benötigt, sobald ich es hinzugefügt habe, hat es nicht funktioniert, habe es mir nicht überlegt, zu allen Projekten hinzuzufügen ... Ich war wahrscheinlich auch müde. Hinzufügen des Anwendungsknotens zu allen Android-Bibliotheksprojekten, die ausgeführt wurden, und jetzt wird der Build fortgesetzt. – TacB0sS

+0

Was passiert, wenn Sie keinen Zugriff auf den Quellcode der Bibliothek haben? –

Verwandte Themen