2015-12-08 16 views
26

Sorunumu giderdim ancak bir çözüm bulamıyorum.Hata: İmzalı oluşturmayı denediğimde şüpheli ad alanı ve önek kombinasyonu [NamespaceTypo] Oluşturuldu APK

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:fab="http://schemas.android.com/apk/res-auto" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    xmlns:app="http://schemas.android.com/tools" 
    app:layout_behavior="@null" 
    android:layout_gravity="bottom|right"> 

cevap

89

değişim kodu xmlns: Bu, bu düzen dosyasının parçası

Error:(6) Error: Suspicious namespace and prefix combination [NamespaceTypo] 
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    Explanation for issues of type "NamespaceTypo": 
    track these down. 
    xmlns:app="http://schemas.android.com/tools" 
    obscure error messages. This check looks for potential misspellings to help 
    Accidental misspellings in namespace declarations can lead to some very 

: Ben imzalı APK oluşturmaya çalıştığınızda
, bu hatayı alıyorum uygulamayı = "http:/bununla /schemas.android.com/tools":

xmlns:app="http://schemas.android.com/apk/res-auto"

benimki çalışmalarını yaptı.

+0

sayesinde, benim sorun yeterince hepsi bu kadar sabit .. –

+2

hiçbir benim için kanonik cevaba ihtiyacım sonraki cevabını aklında tutacak .. –

10

İlk iki satırınız xml kodunuz yanlış. olarak görünmelidir bütün xml dosyası aşağıdaki gibidir:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
xmlns:app="http://schemas.android.com/tools" 
app:layout_behavior="@null" 
android:layout_gravity="bottom|right"> 

ilk 2 satır xml dosyasının beyanı vardır. Sayfanın asıl düzenini tasarım görünümünde görebilmenize rağmen, xml araçları etiketine gereksinim duyulduğundan, yerleşimin oluşturulma aşamasında hala düzeni olacaktır.

Bu ad alanının amacı, XML dosyalarındaki bilgileri kaydedebilmektir ve uygulama paketlenmediğinde, çalışma zamanı veya indirme boyutu cezası olmaması için bu bilgilerin elimine edilmesidir. Bu özel bir Android XML ad alanıdır.

Yardım bu yardımcı olur :)

1

Aynı hata oluştu. Sorunum, Android Studio'nun veri bağlama kullanılırken kök görüntüleme etiketi yerine otomatik olarak bir xmlns'i düzen sekmemde kullanmasıydı. Başka bir deyişle

Ben Android Studio de bunu yapan app öneki çözün: tools ad önizleme için kullanılmalıdır

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:custom="http://schemas.android.com/apk/res-auto"> 

    <data> 

     <variable 
      name="viewModel" 
      type="com.example.ViewModel"/> 
    </data> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/tools" <!-- should have added here --> 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="..." 
      android:layout_height="..." 
      android:orientation="vertical" 
      app:backgroundResource="@{viewModel.someResource}"> 
      ... 
2

:

<?xml version="1.0" encoding="utf-8"?> 
<layout xmlns:custom="http://schemas.android.com/apk/res-auto" 
     xmlns:app="http://schemas.android.com/tools"> <!-- added namespace here ... --> 

    <data> 

     <variable 
      name="viewModel" 
      type="com.example.ViewModel"/> 
    </data> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="..." 
      android:layout_height="..." 
      android:orientation="vertical" 
      app:backgroundResource="@{viewModel.someResource}"> <!-- ... when trying to resolve app --> 
      ... 

bu yapmalıydım zaman android stüdyo üzerinde xml araçları. Örneğin, varsayılan olarak gizlenen bir görünümü test ediyorsanız, ancak önizlemede görmek istiyorsanız, tools:visibility=visible'u kullanmalısınız.

app ad alanı, bildiğim kadarıyla, özel görünümlerinizi ve düzenlerinizi görünümlerinize eklemek istediğiniz xml ad alanına eklemek için kullanılır.

Bu yüzden bütün cevaplarınız doğrudur, ama hiç kimse ad alanlarının ne yaptığını açıklamıyor. Yani Kongre için böyle bunları kullanmak için tavsiye: geribildirim için

xmlns:yourAppName="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
İlgili konular