我在 Maven 中心有一个带有一些小部件的库。当我将该库作为依赖项(来自 maven Central)添加到使用 gradle 的项目时,我得到:
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>