Ho una libreria con alcuni widget in Maven centrale. Quando aggiungo che biblioteca come una dipendenza (dal centro di Maven) per un progetto che utilizza Gradle, ottengo:Libreria Android Declare-Styleable Errore di runtime
java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable
Se scarico manualmente il .aar e comprendono che nel progetto, tutto funziona bene. Ho provato ad utilizzare il completamento del codice di Android Studio per verificare se fosse incluso lo R
della libreria. Quando uso la dipendenza Maven, digitando com.my.pacakge.R
non restituisce risultati, ma quando uso un .arar locale restituisce il R
per la libreria.
Ecco il codice della libreria:
// 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>
Mostraci i file di build in cui stai includendo la dipendenza. –
Ho lo stesso problema con il mio aar. Non riesco a mettere la mia libreria su Maven perché non può usare attributi stilizzabili. "publishNonDefault false" non ha funzionato per me. – NeoKree