2014-11-02 2 views
5

У меня есть библиотека с некоторыми виджетами в maven central. Когда я добавляю эту библиотеку в качестве зависимости (от Maven центрального) к проекту с использованием Gradle, я получаю:Android-библиотека Declare-Styleable Runtime Error

java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable 

Если я вручную загрузить .aar и включают в себя, что в проекте, все работает отлично. Я попытался с помощью завершения кода Android Studio проверить, включен ли в библиотеку R. Когда я использую зависимость maven, ввод com.my.pacakge.R не возвращает результатов, но когда я использую локальный .aar, он возвращает R для библиотеки.

Вот код библиотеки:

// widget constructor 
public ForegroundImageView(Context context, AttributeSet attrs) { 
    super(context, attrs); 

    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ForegroundImageView); 
    Drawable foreground = a.getDrawable(R.styleable.ForegroundImageView_android_foreground); 
    if (foreground != null) { 
     setForeground(foreground); 
    } 
    a.recycle(); 
} 

// attrs.xml 
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="ForegroundImageView"> 
     <attr name="android:foreground"/> 
    </declare-styleable> 
</resources> 
+0

Пожалуйста, покажите нам файлы сборки, в которых вы включаете зависимость. –

+0

У меня такая же проблема с моим ааром. Я не могу поместить свою библиотеку на maven, потому что она не может использовать атрибуты стиля. "publishNonDefault false" не работал для меня. – NeoKree

ответ