5

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>
4

1 に答える 1

1

問題は、依存関係が で公開されていたことpublishNonDefault trueです。

于 2014-11-09T12:03:49.510 に答える