のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

getCompatibilityInfo()は型Resourcesで未定義です

”getCompatibilityInfo()は型Resourcesで未定義です”とエラーになる

public TextView(Context context, AttributeSet attrs, int defStyle)
{
    super(context, attrs, defStyle);
    mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
    mTextPaint.density = getResources().getDisplayMetrics().density;
    mTextPaint.setCompatibilityScaling(
        getResources().getCompatibilityInfo().applicationScale);

android.graphics.Paintでは、以下のように定義されている。
隠しのようだ。

 /** @hide */
public void  [Search] setCompatibilityScaling(float factor) {
         if (factor == 1.0) {
            mHasCompatScaling = false;
             mCompatScaling = mInvCompatScaling = 1.0f;
         } else {
             mHasCompatScaling = true;
             mCompatScaling = factor;
             mInvCompatScaling = 1.0f/factor;
         }
     }

grepcode Paint.setCompatibilityScaling

@hideについて

それは非公開APIだな... フレームワークのソースを見れば ACTION_ALARM_CHANGED が存在してるのがわかるけれど http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/content/Intent.java @hide のタグが付いてるAPIは非公開で、SDK用のスタブ(android.jar)に入らないから、SDKではコンパイルできない リファレンスにも乗らない 標準のアプリはSDKを使うんじゃなくてフレームワークのソースを使って一緒にビルドするから行ける

なるほど、SDKだとコンパイルできないのか。
フルビルドならコンパイルできるんだ。