2013-07-19 20 views
5

muszę zbudować używając Gradle Android projekt, który zależy od projektu A Android biblioteka, która zależy od innej biblioteki Android projektu B.Android Studio - Budowanie Android projekt z biblioteki Androida, która zależy od innej Android Biblioteki

Do tej pory mam następujące:

Android projektu:

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 Library:

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 Biblioteka 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> 

Podczas próby budowania projektu Android następujący błąd jest zgłaszane z Android Studio:

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

Gdzie jest ta konsola jestem przypuszczać, aby szukać więcej informacji na temat tego błędu?

Znalazłem kilka pytań dotyczących tego błędu, ale nie wygląda to tak, jak moje.

Oświecenia?

Dzięki, Adam.

Odpowiedz

6

Pliki manifestu dla biblioteki muszą obecnie mieć węzeł <application />, nawet jeśli jest pusty.

Jest to ograniczenie, które usuniemy w pewnym momencie, ale na razie wystarczy go dodać.

+0

Przeczytałem to gdzieś i pomyślałem, że tylko LibA potrzebuje węzła aplikacji, kiedy dodałem go, to nie zadziałało, nie przyszło mi do głowy, żeby dodać do wszystkich projektów ... Ja też byłem prawdopodobnie zmęczony. dodanie węzła aplikacji do wszystkich projektów Android-Library zadziałało, a teraz kompilacja jest kontynuowana. – TacB0sS

+0

Co zrobić, jeśli nie masz dostępu do kodu źródłowego biblioteki? –

Powiązane problemy