2017-08-07 69 views
9

Son zamanlarda Android Studio 3.0'ı Canary kanalından yükledim. Bu da görüntülenirAndroidManifest.xml ile Android Studio 3.0'da Sorun

Error:(49) unknown element <uses-sdk> found

:

Error:/home/computername/AndroidStudioProjects/applicationname/app/build/intermediates/manifests/full/release/AndroidManifest.xml:49 unknown element <uses-sdk> found

Ancak, benim eski projeleri yüklerken, bu otomatik olarak inşa değişkene bağlı olarak Oluşturulan AndroidManifest.xml dosyasında haşhaş devam ediyor Söylemeye gerek yok, bu Android Studio 2.3 bir sorun değildi. Bunu çözmek için herhangi bir fikir var mı? Burada bir çok benzer sorunu okudum ama hiç sorunumu çözemedim. Bu arada, kurulum değişkenini hata ayıklamak veya serbest bırakmak için ayarlamam önemli değil, aynı şeyi söylüyor. Ayrıca, "R" sınıfı çalışmıyor ve manifest xmlns:android="http://schemas.android.com/apk/res/android bildiriminin üzerine geldiğinde "URI kayıtlı değil" diyor.

Yine, proje yapısı hiç değişmedi, yalnızca Android Studio 3.0 sürümüne yükselttim.

Teşekkürler!

İşte, mükemmel çalışıyor, /src/main klasörünün altında bulunan AndroidManifest.xml dosyası. Sorun, /app/build/intermediates/manifests/full klasöründe oluşturulan AndroidManifest.xml dosyaları ile - Uygulamamı kesenler THESE.

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

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

    <!-- PROTECTION_NORMAL permissions, automatically granted --> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 

    <!-- DANGEROUS PERMISSIONS, must request --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

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

    <application 
     android:allowBackup="true" 
     android:debuggable="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.domain.appname.view.MainActivity" 
      android:noHistory="true" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.domain.appname.view.TabbedActivity" 
      android:configChanges="keyboardHidden|orientation|screenSize" 
      android:label="@string/app_name" 
      android:noHistory="true" 
      android:screenOrientation="landscape" 
      android:theme="@style/AppTheme.NoActionBar" > 
     </activity> 

     <uses-sdk 
      android:minSdkVersion="21" 
      android:targetSdkVersion="25" /> 
    </application> 

</manifest> 

Daha sonra düzenlemek

Ben Android Studio 2.3 döndü ettik:

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

     <application 
      android:allowBackup="true" 
      android:icon="@mipmap/ic_launcher" 
      android:label="@string/app_name" 
      android:supportsRtl="true" 
      android:theme="@style/AppTheme"> 
      <activity android:name=".view.MainActivity" 
       android:noHistory="true"> 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
      <activity 
       android:name=".view.TabbedActivity" 
       android:label="@string/app_name" 
       android:theme="@style/AppTheme.NoActionBar" 
       android:screenOrientation="landscape" 
       android:configChanges="keyboardHidden|orientation|screenSize" 
       android:noHistory="true"> 

      </activity> 
     </application> 

     <!-- PROTECTION_NORMAL permissions, automatically granted --> 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
     <uses-permission android:name="android.permission.INTERNET" /> 

     <!-- DANGEROUS PERMISSIONS, must request --> 
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    </manifest> 

İşte ayıklama veya otomatik oluşturulan Manifests çalışmıyor gibi görünmek bırakın yolu ve gradyan eklentisini 2.3.2'ye geri getirin, ve burada otomatik olarak oluşturulan AndroidManifest.xml şimdi nasıl görünüyor:

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

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

    <instrumentation 
     android:name="android.support.test.runner.AndroidJUnitRunner" 
     android:functionalTest="false" 
     android:handleProfiling="false" 
     android:label="Tests for com.domain.appname" 
     android:targetPackage="com.domain.appname" /> 

    <application> 
     <uses-library android:name="android.test.runner" /> 
    </application> 

</manifest> 

Şimdi her şey, ancak, gradle 3.0.0 altında otomatik olarak oluşturulan Manifest dosyası arasındaki farkı ve sanırım 2.3.2

beklemek gerekecek gradle altında not düşün birisi bir çözüm her zamanki gibi bulur işleri kadar Bu çalışmayı not 3.0.0 altında yapmak ve aynı zamanda Android Studio 3.0'da (şimdi şu anda çalışıyorum ve çalışıyorum) gradient eklentisi 2.3.2'yi kullanmak.

Yani mesele manifest'te uygulama etiketinin içinde bir <uses-sdk> sahiptir

+0

Bize bir dosya göster –

+0

Şimdi nereye gideceğinizi söyleyebildiysen, –

+0

" Bu ikinci "ekran görüntüsü" nin sonundaki "uses-sdk" ifadesidir. Ama bu oldukça ilgisiz, dosyanın başlangıcından beri, "xmlns: android =" http://schemas.android.com/apk/res/android "" bölümünün altında kırmızı ve hemen hemen her şeyin altı çizili Bu özel olarak oluşturulan Manifest dosyasındaki eleman, "URI kayıtlı değil" diyerek URI'yi yükleyemediğinden ("gerçek" AndroidManifest dosyasının mükemmel bir şekilde çalıştığını unutmayın). –

cevap

5

Muhtemelen bir bağımlılık kitaplığı (aar) sahip 3.0.0-alpha9 yeni gradle beraberdir. Bu, birleştirildiğinde, uygulamanızın yanlış kullanımı da olacaktır.

Bu, Android için eski bir yerel vlc yapısıyla bana oldu.

+0

Aslında projemde bir aar kütüphanesi var. İlginç. Şu an evdeyim ve kontrol edemiyorum, ama haklısınız. –

1

Manifest dosyamda, yapı hatasına neden olan düzenli bir etkinlik içinde bir kategori öğesi vardı. as3-rc1'e güncellendikten ve 26+ aracı oluşturduktan sonra kaldırmam sorunu çözüldü. Umarım bu birisine yardım eder.Sorun kalırsa

<activity 
     android:name=".AboutUsActivity" 
     android:label="@string/title_activity_about_us" 
     android:parentActivityName=".MainActivity" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <category android:name="android.intent.category.DEFAULT" /> 

     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.MainActivity" /> 
    </activity> 
1

, Gragle plugin v. 3.0.0 için taşınamayacak üzerinde this official tutorial kontrol edin.

Aynı hatayı aldığımda, Manifest dosyada yerine yazım hatası olan meta-data yazım hatası vardı.