2016-06-13 5 views
6

Я довольно новичок в Android Dev и пытаюсь понять, как включать расширения/плагины с открытым исходным кодом/сторонними разработчиками.Android: Как получить пользовательский XML признанный

Я попытался включить два разных пакета с помощью добавления к методу Gradle, совсем недавно в библиотеке https://github.com/silvestrpredko/DotProgressBarExample/tree/master/app

который инструктирует добавить следующую Gradle зависимость:

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

В настоящее время мой Gradle выглядит например:

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]' 
} 

И, согласно документам, я создал макет со следующим XML (соответствующие стороны скопировали прямо из дела 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> 

Однако, я получаю эту ошибку:

/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 

Что такое правильный способ включить эти пакеты с помощью пользовательских XML?

+0

'пользовательские: amount', например, 'custom' является« несвязанным префиксом » –

+0

Yup, получил это. Но, согласно странице Github для плагина, это должно быть разрешено путем включения зависимости в файл build.gradle, не так ли? –

+0

Для тех проектов Github, если что-то не работает как задокументировано, лучше всего совать пример приложения с примера –

ответ

3

Вы упускаете декларацию custom пространства имен, вы можете определить ее путем добавления на ваш FrameLayout этого атрибута

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

Вы должны определить пространство имен в вашем XML. Если вы посмотрите пример кода here. Вы можете видеть, что в этом примере было объявлено пользовательское пространство имен. Вы должны объявить его тоже, как это:

<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

Я принимаю это, потому что он объясняет проблему и разрешение, а также предоставляет подробный пример кода. Большое спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^