6

私は 1 年間、市場にアプリケーションを持っています。先週、アプリのソース コードを変更しました。リリース バージョンの Android Studio をビルドしようとすると、エラーがスローされます。

「エラー: カラー リソース ID (R.color.) が必要ですが、RGB 整数 [ResourceType] を受け取りました」

色はコードのこの部分でのみ使用され、この部分は変更していません。

if (android.os.Build.VERSION.SDK_INT >= 16) {
            rlFlash.setBackground(new ColorDrawable
                    (Color.parseColor(("#86cc55"))));
        }
        else{
            rlFlash.setBackgroundDrawable(new ColorDrawable
                    (Color.parseColor(("#86cc55"))));
        }

デバッグ バージョンの Android スタジオでエラーが発生せず、apk をビルドできるのは非常に奇妙です。

どうなるかわかりますか??

ありがとう。

4

3 に答える 3

3

次のようにします。

rlFlash.setBackgroundColor(Color.parseColor("#86cc55"));
于 2016-04-21T03:13:44.910 に答える
1

このメソッドでアノテーション @ColorRes を使用している場合は、それを削除してください。apk が正常に生成されます。lint チェックの詳細については、SO Answerを参照してください。その答えを以下に引用します。

独自のコードでこれらのチェックをサポートする Java アノテーションがあります。それらはすべて android.support.annotations パッケージにあります: IdRes DrawableRes LayoutRes StringRes ColorRes &c この場合、たとえば、次のように使用できます。

private void mySetContentView(@LayoutRes int resourceId) {
    setContentView(resourceId); 
} 

Android Studio は、提供されたリソース ID が実際にレイアウト用であることを確認します。さらに、これらの注釈はエクスポートされるため、ライブラリを設計するときに特に役立ちます。

于 2016-12-06T12:25:19.923 に答える