ошибка: неожиданный элемент <использует-sdk> найден в <manifest><application> - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь создать этот пример приложения для Android vlctest , однако я получаю следующую ошибку:

Android resource linking failed
Output:  C:\Program Files\android\workspace\vlctest-master\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml:42: error: unexpected element <uses-sdk> found in <manifest><application>.

Command: C:\Program Files\android\android-studio\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\466069e667720c031ae71c30fd5dfaa7\aapt2-3.2.1-4818971-windows\aapt2.exe link -I\
        E:\android\Sdk\platforms\android-28\android.jar\
        --manifest\
        C:\Program Files\android\workspace\vlctest-master\app\build\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
        -o\
        C:\Program Files\android\workspace\vlctest-master\app\build\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
        -R\
        @C:\Program Files\android\workspace\vlctest-master\app\build\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
        --auto-add-overlay\
        --java\
        C:\Program Files\android\workspace\vlctest-master\app\build\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
        --custom-package\
        com.sxx.vlctest\
        -0\
        apk\
        --output-text-symbols\
        C:\Program Files\android\workspace\vlctest-master\app\build\intermediates\symbols\debug\R.txt\
        --no-version-vectors
Daemon:  AAPT2 aapt2-3.2.1-4818971-windows Daemon #0

Обратите внимание, что упомянутый в ошибке XML-манифест ( AndroidManifest.xml ) представляет собой автоматически созданный файл в каталоге сборки, поэтому любые изменения в нем будут сброшены после синхронизации.

AndroidManifest.xml:

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

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

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:name="com.sxx.vlctest.VLCApplication"
        android:allowBackup="true"
        android:appComponentFactory="android.support.v4.app.CoreComponentFactory"
        android:debuggable="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.sxx.vlctest.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <uses-sdk
            android:minSdkVersion="16"
            android:targetSdkVersion="26" />
    </application>

</manifest>

Я думаю, что мой app gradle также может быть полезным:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"

    defaultConfig {
        applicationId "com.sxx.vlctest"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:+'
    implementation 'com.android.support:design:28.0.0'
    implementation project(':libvlc-3.0.0')
}

EDIT:

Ниже приведен основной файл манифеста, расположенный в "app / src / main / AndroidManifest.xml":

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sxx.vlctest">

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.INTERNET" />

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

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

    <application
        android:name="com.sxx.vlctest.VLCApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Это изображение может быть также полезным:

Check this image Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Файл манифеста с нарушением действительно находится здесь в этом файле .aar:

vlctest-master\vlctest-master\libvlc-3.0.0\libvlc-3.0.0.aar

Файл .aar - это просто файл .zip с пользовательским расширением. Так что переименуйте его в .zip, разархивируйте, удалите строку «used-sdk» из файла манифеста, распакуйте его, переименуйте в .aar, и все готово! Gradle успешно синхронизировался после всего этого.

0 голосов
/ 01 ноября 2018

ошибка: неожиданный элемент <uses-sdk> найден в <manifest><application>

Поэтому удалите

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

изнутри <application/>. оно не принадлежит туда, поэтому оно неожиданно.

и Manifest.xml не должен генерироваться автоматически. может быть несколько Manifest.xml присутствующих, которые объединяются. /src/debug/Manifest.xml может содержать неуместный элемент.

...