2017-10-05 78 views
0

我有兩個單獨工作的android項目(A和B)。我製作了一個帶有兩個按鈕的父項目,這些按鈕調用了這些子項目中的每一個(我已將子項目包括爲庫)。最初我向我的父項目添加了一個子項目,並且工作正常。但是,在添加第二個子項目時,我收到了一個android清單合併錯誤。每個子應用程序都需要一個SDK密鑰才能在啓動時進行註冊。這在清單中定義如下:Android Manifest合併失敗

兒童應用阿:

<application 
    android:name=".DemoApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    tools:replace="android:icon"> 

    <!-- DJI SDK --> 
    <uses-library android:name="com.android.future.usb.accessory" /> 

    <meta-data 
     android:name="com.dji.sdk.API_KEY" 
     android:value="f70d587986XXXXXXXXXX"/> 

兒童應用B:

<application 
    android:name=".DJIDemoApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <!-- DJI SDK --> 

    <uses-library android:name="com.android.future.usb.accessory" /> 

    <meta-data 
     android:name="com.dji.sdk.API_KEY" 
     android:value="2cde5eaabXXXXXXXXXXXX" /> //TODO: Enter your app key here 

誤差Android清單給出似乎以元數據部分中的API_KEY值做。我的猜測是,在明確合併時,它不知道使用哪個API_KEY值。但是,我需要同時註冊應用程序A和B的兩個值。我嘗試向其中一個子應用程序添加'tools:replace = android:value',但編譯的應用程序只運行一個子項。確切的錯誤如下:

Error: Attribute meta-data#[email protected] value=(f70d587986XXXXXXXXXX) from AndroidManifest.xml:34:55-95 is also present at AndroidManifest.xml:34:55-95 value=(2cde5eaabXXXXXXXXXXXXX). Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:34:9-97 to override. app main manifest (this file), line 33 

我是新來的android,不知道如何解決這個問題。任何有關這方面的幫助將不勝感激。

回答

1

在AndroidManifest.xml中

這個錯誤在這兩個文件引起

<meta-data 
     android:name="com.dji.sdk.API_KEY" 
     android:value="2cde5eaabXXXXXXXXXXXX" /> 

prensent添加 'tools:replace="android:value"' 以元素