Maven Central にいくつかのウィジェットを含むライブラリがあります。そのライブラリを依存関係として (maven central から) gradle を使用してプロジェクトに追加すると、次のようになります。
java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable
.aar を手動でダウンロードしてプロジェクトに含めると、すべて正常に動作します。R
ライブラリが含まれているかどうかを確認するために、Android Studio のコード補完を使用してみました。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>