Mam bibliotekę z niektórymi widżetami w centrum maven. Kiedy dodać tę bibliotekę jako zależność (od maven centralne) dla projektu za pomocą Gradle, otrzymuję:Biblioteka Androida Deklaracja stylu-stylowy błąd Runtime
java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable
Gdybym ręcznie pobrać .aar i to, że w projekcie, wszystko działa bez zarzutu. Próbowałem użyć uzupełnienia kodu Android Studio, aby sprawdzić, czy biblioteka zawierała bibliotekę R
. Kiedy używam zależności z maven, wpisanie com.my.pacakge.R
nie zwróci żadnych wyników, ale gdy użyję lokalnego pliku .aar, zwróci on R
dla biblioteki.
Oto kod biblioteka:
// 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>
Pokaż nam pliki kompilacji, w których uwzględniasz zależność. –
Mam ten sam problem z moim aarem. Nie mogę umieścić mojej biblioteki na maven, ponieważ nie może ona korzystać z atrybutów, które są stylowe. "publishNonDefault false" nie działa dla mnie. – NeoKree