2017-08-30 15 views
0

自分のサーバーで配信されるアプリケーションの更新をしようとしています。パースエラー - パッケージを処理する際に問題が発生しました。PackageParser:不明な要素の下に<manifest>:メタデータ

logcat

PackageParser: Unknown element under <manifest>: meta-data at 

とAAPT

で探して
A: android:name(0x01010003)="android.permission.MANAGE_USB" (Raw: "android.permission.MANAGE_USB") 
E: meta-data (line=21) 
    A: android:name(0x01010003)="android.support.VERSION" (Raw: "android.support.VERSION") 

一つからsame issueからの投稿は、インスタント実行機能は無効になっていないが、まだ行くべきであることが示唆されました。

最新のASと最新のアップデートがあります。私のアプリ/ srcに/メイン/ AndroidManifest.xmlに設定

メタデータの一部は

<meta-data 
android:name="android.app.device_admin" 
android:resource="@xml/device_admin_receiver" /> 

postがメタデータについても議論があり、それが名前とリソースが、私のメタ中を含める必要があります方法ですデータの両方が問題になることはありませんでした。

私もマニフェスト合併リリース-REPORT.TXT

meta-data#android.support.VERSION 
ADDED from [com.android.support:appcompat-v7:25.3.1] /home/test/.android/build-cache/0babb927f9685604721e7d79f796b3104e7aa65c/output/AndroidManifest.xml:25:5-27:34 
MERGED from [com.android.support:support-v4:25.3.1] /home/test/.android/build-cache/c982b10f45110a04eb75ca3351098dfbfe082732/output/AndroidManifest.xml:25:5-27:34 

から見て、アプリ/構築/中間体/マニフェスト/フル/リリース/ AndroidManifest.xmlを から、それはあります

<uses-permission android:name="android.permission.MANAGE_USB" /> 

<meta-data 
    android:name="android.support.VERSION" 
    android:value="25.3.1" /> 

<application 

私は外部のライブラリモジュール時間として

とCarouselLayoutManager

compile 'com.android.support:recyclerview-v7:25.3.1' 

をaveの私は、このための根本的な原因を見つけることを試みたが、すべてのガイド、ヒントは行き止まりに来ました。ここで

アップデート1 はAndroidManifest.xmlを

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
package="com.xxx.yyy.app_android"> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 
<uses-permission android:name="android.permission.MANAGE_USB" /> 

<application 
    android:fitsSystemWindows="true" 
    android:allowBackup="false" 
    android:icon="@mipmap/icon" 
    android:supportsRtl="true" 
    android:label="@string/app_name" 
    android:name=".ui.App" 
    android:theme="@style/SplashTheme" 
    android:windowSoftInputMode="adjustNothing" 
    tools:ignore="GoogleAppIndexingWarning"> 
    <activity android:name=".ui.SplashActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".ui.USBDeviceConnectionActivity" /> 
    <activity android:name=".ui.MainActivity" /> 
    <activity android:name=".ui.MainAppViewActivity" /> 
    <activity android:name=".ui.InstructionsActivity" /> 

    <service android:name=".machine.AdjustSeatHeightService" /> 
    <service android:name=".machine.AdjustPressureService"/> 
    <service android:name=".machine.RFIDService" 
     android:exported="false" /> 
    <service android:name=".machine.MVUControlService" 
     android:exported="false" /> 
    <service android:name=".machine.PressureNModeControlService" 
     android:exported="false" /> 
    <service android:name=".machine.MachModeChangeService" 
     android:exported="false" /> 
    <service android:name=".machine.ReadMotorPos" 
     android:exported="false" /> 

    <receiver 
     android:name=".ui.DeviceAdminReceiver" 
     android:description="@string/app_name" 
     android:label="@string/app_name" 
     android:permission="android.permission.BIND_DEVICE_ADMIN"> 
     <meta-data 
      android:name="android.app.device_admin" 
      android:resource="@xml/device_admin_receiver" /> 
     <intent-filter> 
      <action android:name="android.intent.action.DEVICE_ADMIN_ENABLED"/> 
      <action android:name="android.intent.action.PROFILE_PROVISIONING_COMPLETE"/> 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
      <action android:name="android.app.action.DEVICE_ADMIN_DISABLED" /> 
     </intent-filter> 
    </receiver> 

    <!-- Start the Service if applicable on boot --> 
    <receiver android:name=".ui.BootReceiver"> 
     <intent-filter > 
      <action android:name="android.intent.action.BOOT_COMPLETED"/> 
     </intent-filter> 
    </receiver> 
</application> 
</manifest> 

アップデート2

は25.3.0に25.3.1からrecyclerview-V7のバージョンを置き換え、今私はこれを取得していますがいっぱいですエラー。私の推測からは、問題のあるメタデータはappcompat-v7から来ていますが、AndroidManifestファイルをマージする際に、どうやってインクルードされているのか、それが間違っているのか分かりません。

Error:Execution failed for task ':app:processDebugManifest'. 
> Manifest merger failed : Attribute meta-data#[email protected] value=(25.3.1) from [com.android.support:appcompat-v7:25.3.1] AndroidManifest.xml:27:9-31 
is also present at [com.android.support:recyclerview-v7:25.3.0] AndroidManifest.xml:24:9-31 value=(25.3.0). 
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:25:5-27:34 to override. 

アップデート3

[OK]をクリックします。その問題は、私がビルドに取り入れたexternal moduleだと思われます。 何らかの理由でandroidManifest.xmlがマージされ、余分なメタデータ情報が得られます。

更新4 削除された外部モジュールは、まだ問題が発生しています。問題はcom.android.support:recyclerview-v7:25.3.1であるようですが、私はなぜそれがわかりません。

更新5 問題が見つかりました。 supportlibraries 25.3.0以降が彼らのマニフェストファイルに変更をもたらすようだ:

<manifest package="android.support.v7.appcompat"> 
    <uses-sdk android:minSdkVersion="9" tools:overrideLibrary="android.support.graphics.drawable.animated"/> 
    <meta-data android:name="android.support.VERSION" android:value="25.3.0"/> 
    <application/> 
</manifest> 

メタデータがアプリケーションタグの下ではなく、APKを作成するとき、それは最終のAndroidManifest.xmlで間違った場所に注入されます。

これまでのサポートライブラリに戻す方法を理解する必要があります。これは、含まれていない他のライブラリのバージョンが不一致であるという通知を受け取るためです。 :(this android referenceメタデータタグによると

答えて

0

は、以下のタグ

<activity> 
<activity-alias> 
<application> 
<provider> 
<receiver> 
<service> 

中に含まれている。しかし、あなたのタグは、これらのいずれかの側に出ているあなたが投稿 エラーがPackageParser

です。:不明な要素の下に<manifest>:メタデータ

このタグは、問題の原因となっているタグ<manifest>

<application>タグに移動してください。動作します。

+0

問題は <メタデータ アンドロイド:名=「android.support.VERSION」 アンドロイド:値=「25.3.1」/>ということである 取得のAPKを構築するときにどこかから注入されました。 私は自分のアプリのAndroidManifest.xmlに定義していません。 – Juge

+0

これはどこに配置されていますか? –

+0

<受信機.... "> <メタデータ アンドロイド:名=" android.app.device_admin」 アンドロイド:資源= "@ XML/device_admin_receiver" /> <インテントフィルタ> .... Juge

関連する問題