2016-06-13 18 views
6

Jestem całkiem nowym użytkownikiem Androida Dev i próbuję zrozumieć, jak włączyć rozszerzenia/wtyczki open-source/strony trzeciej.Android: jak uzyskać niestandardowy kod XML rozpoznawany

Próbowałem to dwa różne pakiety za pośrednictwem dodać do metody Gradle, ostatnio biblioteki w https://github.com/silvestrpredko/DotProgressBarExample/tree/master/app

który nakazuje dodać następującą zależność: Gradle

compile 'com.github.silvestrpredko:dot-progress-bar:[email protected]' 

Obecnie mój Gradle wygląda na przykład:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

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

repositories { 
    jcenter() 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 

    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.android.support:support-v4:23.4.0' 
    compile 'com.github.silvestrpredko:dot-progress-bar:[email protected]' 
} 

I, zgodnie z dokumentami, utworzyłem układ z następującym XML (odpowiednie strony skopiowane bezpośrednio z cs):

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.e.crispens.tuna.StringFragment"> 

    <com.github.silvestrpredko.dotprogressbar.DotProgressBar 
     android:id="@+id/dot_progress_bar" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     custom:amount="5" 
     custom:duration="@android:integer/config_mediumAnimTime" 
     custom:endColor="@color/light_blue_A400" 
     custom:startColor="@color/light_blue_A700"/> 


</FrameLayout> 

Jednak dostaję ten błąd:

/Users/crispensmith/AndroidStudioProjects/Tuna/app/src/main/res/layout/fragment_string.xml 
Error:(7) Error parsing XML: unbound prefix 
Error:Execution failed for task ':app:processDebugResources'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/crispensmith/Library/Android/sdk/build-tools/23.0.3/aapt'' finished with non-zero exit value 1 

Jaki jest prawidłowy sposób na włączenie tych pakietów przy użyciu niestandardowych XML?

+0

'niestandardowy: amount', na przykład 'custom' jest" niezwiązanym prefiksem " –

+0

Yup, masz to. Ale według strony Githuba dla wtyczki, powinno to zostać rozwiązane przez włączenie zależności w pliku build.gradle, czyż nie? –

+0

W przypadku tych projektów Github, jeśli coś nie działa tak, jak udokumentowano, najlepiej przeskakiwać na przykład kodu źródłowego aplikacji –

Odpowiedz

3

Brakuje deklaracji przestrzeni nazw custom, można go określić poprzez dodanie na swojej FrameLayout tego atrybutu

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

Musisz zdefiniować przestrzeń nazw custom w swoim XML. Jeśli spojrzysz na przykładowy kod here. Widać, że w tym przykładzie zadeklarowano niestandardowy obszar nazw. należy ją zadeklarować też tak:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.e.crispens.tuna.StringFragment"> 

    <com.github.silvestrpredko.dotprogressbar.DotProgressBar 
     android:id="@+id/dot_progress_bar" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     custom:amount="5" 
     custom:duration="@android:integer/config_mediumAnimTime" 
     custom:endColor="@color/light_blue_A400" 
     custom:startColor="@color/light_blue_A700"/> 

</FrameLayout> 
+0

Akceptuję to, ponieważ wyjaśnia problem i rozdzielczość oraz dostarcza dokładny przykład kodu. Wielkie dzięki. –

Powiązane problemy