在android studio中生成符号apk时出错

在android studio中生成符号apk时出错,android,android-studio,google-play-services,apk,apksigner,Android,Android Studio,Google Play Services,Apk,Apksigner,嗨,如果有人能帮忙的话,我在这里面临问题 我正在与android studio签署apk,并收到错误消息 import android.graphics.Rect出现错误 import android.graphics.Rect; public class CandidateView extends View { private static final List<String> EMPTY_LIST = new ArrayList(); private

嗨,如果有人能帮忙的话,我在这里面临问题 我正在与android studio签署apk,并收到错误消息
import android.graphics.Rect出现错误

    import android.graphics.Rect;


public class CandidateView extends View {
    private static final List<String> EMPTY_LIST = new ArrayList();
    private static final int MAX_SUGGESTIONS = 32;
    private static final int OUT_OF_BOUNDS = -1;
    private static final int SCROLL_PIXELS = 20;
    private static final int X_GAP = 10;
    private Rect mBgPadding;
    private int mColorNormal;
    private int mColorOther;
    private int mColorRecommended;
    private GestureDetector mGestureDetector;
    private Paint mPaint;
    private boolean mScrolled;
    private int mSelectedIndex;
    private Drawable mSelectionHighlight;
    private SimpleKB mService;
    private List<String> mSuggestions;
    private int mTargetScrollX;
    private int mTotalWidth;
    private int mTouchX = -1;
    private boolean mTypedWordValid;
    private int mVerticalPadding;
    private int[] mWordWidth = new int[32];
    private int[] mWordX = new int[32];

    class C02381 extends SimpleOnGestureListener {
        C02381() {
        }

        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            CandidateView.this.mScrolled = true;
            int sx = (int) (((float) CandidateView.this.getScrollX()) + distanceX);
            if (sx < 0) {
                sx = 0;
            }
            if (CandidateView.this.getWidth() + sx > CandidateView.this.mTotalWidth) {
                sx = (int) (((float) sx) - distanceX);
            }
            CandidateView.this.mTargetScrollX = sx;
            CandidateView.this.scrollTo(sx, CandidateView.this.getScrollY());
            CandidateView.this.invalidate();
            return true;
        }
    }

    public CandidateView(Context context) {
        super(context);
        this.mSelectionHighlight = context.getResources().getDrawable(17301602);
        this.mSelectionHighlight.setState(new int[]{16842910, 16842908, 16842909, 16842919});
        Resources r = context.getResources();
        setBackgroundColor(r.getColor(R.color.candidate_background));
        this.mColorNormal = r.getColor(R.color.candidate_normal);
        this.mColorRecommended = r.getColor(C0235R.color.candidate_recommended);
        this.mColorOther = r.getColor(R.color.candidate_other);
        this.mVerticalPadding = r.getDimensionPixelSize(R.dimen.candidate_vertical_padding);
        this.mPaint = new Paint();
        this.mPaint.setColor(this.mColorNormal);
        this.mPaint.setAntiAlias(true);
        this.mPaint.setTextSize((float) r.getDimensionPixelSize(R.dimen.candidate_font_height));
        this.mPaint.setStrokeWidth(0.0f);
        this.mGestureDetector = new GestureDetector(new C02381());
        setHorizontalFadingEdgeEnabled(true);
        setWillNotDraw(false);
        setHorizontalScrollBarEnabled(false);
        setVerticalScrollBarEnabled(false);
    }

    public void setService(SimpleKB listener) {
        this.mService = listener;
    }

    public int computeHorizontalScrollRange() {
        return this.mTotalWidth;
    }

    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int measuredWidth = resolveSize(50, widthMeasureSpec);
        Rect padding = new Rect();
        this.mSelectionHighlight.getPadding(padding);
        setMeasuredDimension(measuredWidth, resolveSize(((((int) this.mPaint.getTextSize()) + this.mVerticalPadding) + padding.top) + padding.bottom, heightMeasureSpec));
    }

    protected void onDraw(Canvas canvas) {
        if (canvas != null) {
            super.onDraw(canvas);
        }
        this.mTotalWidth = 0;
        if (this.mSuggestions != null) {
            if (this.mBgPadding == null) {
                this.mBgPadding = new Rect(0, 0, 0, 0);
                if (getBackground() != null) {
                    getBackground().getPadding(this.mBgPadding);
                }
            }
            int x = 0;
            int count = this.mSuggestions.size();
            int height = getHeight();
            Rect bgPadding = this.mBgPadding;
            Paint paint = this.mPaint;
            int touchX = this.mTouchX;
            int scrollX = getScrollX();
            boolean scrolled = this.mScrolled;
            boolean typedWordValid = this.mTypedWordValid;
            int y = (int) (((((float) height) - this.mPaint.getTextSize()) / 2.0f) - this.mPaint.ascent());
            int i = 0;
            while (i < count) {
                String suggestion = (String) this.mSuggestions.get(i);
                int wordWidth = ((int) paint.measureText(suggestion)) + 20;
                for (int ii = 0; ii > this.mSuggestions.size(); ii++) {
                    this.mWordX[i] = x;
                }
                this.mWordWidth[i] = wordWidth;
                paint.setColor(this.mColorNormal);
                if (touchX + scrollX >= x && touchX + scrollX < x + wordWidth && !scrolled) {
                    if (canvas != null) {
                        canvas.translate((float) x, 0.0f);
                        this.mSelectionHighlight.setBounds(0, bgPadding.top, wordWidth, height);
                        this.mSelectionHighlight.draw(canvas);
                        canvas.translate((float) (-x), 0.0f);
                    }
                    this.mSelectedIndex = i;
                }
                if (canvas != null) {
                    if ((i == 1 && !typedWordValid) || (i == 0 && typedWordValid)) {
                        paint.setFakeBoldText(true);
                        paint.setColor(this.mColorRecommended);
                    } else if (i != 0) {
                        paint.setColor(this.mColorOther);
                    }
                    Canvas canvas2 = canvas;
                    canvas2.drawText(suggestion, (float) (x + 10), (float) y, paint);
                    paint.setColor(this.mColorOther);
                    canvas.drawLine(0.5f + ((float) (x + wordWidth)), (float) bgPadding.top, 0.5f + ((float) (x + wordWidth)), (float) (height + 1), paint);
                    paint.setFakeBoldText(false);
                }
                x += wordWidth;
                i++;
            }
            this.mTotalWidth = x;
            if (this.mTargetScrollX != getScrollX()) {
                scrollToTarget();
            }
        }
    }

    private void scrollToTarget() {
        int sx = getScrollX();
        if (this.mTargetScrollX > sx) {
            sx += 20;
            if (sx >= this.mTargetScrollX) {
                sx = this.mTargetScrollX;
                requestLayout();
            }
        } else {
            sx -= 20;
            if (sx <= this.mTargetScrollX) {
                sx = this.mTargetScrollX;
                requestLayout();
            }
        }
        scrollTo(sx, getScrollY());
        invalidate();
    }

    @SuppressLint({"WrongCall"})
    public void setSuggestions(List<String> suggestions, boolean completions, boolean typedWordValid) {
        clear();
        if (suggestions != null) {
            this.mSuggestions = new ArrayList(suggestions);
        }
        this.mTypedWordValid = typedWordValid;
        scrollTo(0, 0);
        this.mTargetScrollX = 0;
        onDraw(null);
        invalidate();
        requestLayout();
    }

    public void clear() {
        this.mSuggestions = EMPTY_LIST;
        this.mTouchX = -1;
        this.mSelectedIndex = -1;
        invalidate();
    }

    public boolean onTouchEvent(MotionEvent me) {
        if (!this.mGestureDetector.onTouchEvent(me)) {
            int action = me.getAction();
            int y = (int) me.getY();
            this.mTouchX = (int) me.getX();
            switch (action) {
                case 0:
                    this.mScrolled = false;
                    invalidate();
                    break;
                case 1:
                    if (!this.mScrolled && this.mSelectedIndex >= 0) {
                        this.mService.pickSuggestionManually(this.mSelectedIndex);
                    }
                    this.mSelectedIndex = -1;
                    removeHighlight();
                    requestLayout();
                    break;
                case 2:
                    if (y <= 0 && this.mSelectedIndex >= 0) {
                        this.mService.pickSuggestionManually(this.mSelectedIndex);
                        this.mSelectedIndex = -1;
                    }
                    invalidate();
                    break;
                default:
                    break;
            }
        }
        return true;
    }

    @SuppressLint({"WrongCall"})
    public void takeSuggestionAt(float x) {
        this.mTouchX = (int) x;
        onDraw(null);
        if (this.mSelectedIndex >= 0) {
            this.mService.pickSuggestionManually(this.mSelectedIndex);
        }
        invalidate();
    }

    private void removeHighlight() {
        this.mTouchX = -1;
        invalidate();
    }
}
导入android.graphics.Rect;
公共类候选视图扩展视图{
private static final List EMPTY_List=new ArrayList();
私有静态最终int MAX_建议=32;
私有静态final int OUT_OF_BOUNDS=-1;
私有静态最终整型滚动像素=20;
专用静态最终int X_间隙=10;
私有Rect-mBgPadding;
私人国际货币基金组织;
私人酒店;
私人int MCOLORRED;
私人手势检测器mGestureDetector;
私人油漆;
私有布尔值;
私有int mSelectedIndex;
私人可拉丝;
私人SimpleKB mService;
私人名单建议;
私有int-mtargetx;
私人国际总宽度;
私有int mTouchX=-1;
私有布尔值mTypedWordValid;
私有int-mverticalpading;
私有int[]mWordWidth=新int[32];
私有整数[]mWordX=新整数[32];
类C02381扩展了SimpleOnGestureListener{
C02381(){
}
公共布尔onScroll(MotionEvent e1、MotionEvent e2、浮点距离X、浮点距离Y){
CandidateView.this.mScrolled=true;
intsx=(int)((float)CandidateView.this.getScrollX())+distanceX);
if(sx<0){
sx=0;
}
if(CandidateView.this.getWidth()+sx>CandidateView.this.mTotalWidth){
sx=(int)((float)sx-距离x);
}
CandidateView.this.mTargetScrollX=sx;
CandidateView.this.scrollTo(sx,CandidateView.this.getScrollY());
CandidateView.this.invalidate();
返回true;
}
}
公共候选视图(上下文){
超级(上下文);
this.mSelectionHighlight=context.getResources().getDrawable(17301602);
this.mSelectionHighlight.setState(新的int[]{16842910、16842908、16842909、16842919});
Resources r=context.getResources();
setBackgroundColor(r.getColor(r.color.candidate_background));
this.mColorNormal=r.getColor(r.color.candidate\u normal);
this.mcolorRecommendated=r.getColor(C0235R.color.candidate_推荐);
this.mColorOther=r.getColor(r.color.candidate_other);
this.mVerticalPadding=r.getDimensionPixelSize(r.dimen.candidate\u vertical\u padding);
this.mPaint=新油漆();
this.mPaint.setColor(this.mColorNormal);
this.mPaint.setAntiAlias(true);
this.mPaint.setTextSize((float)r.getDimensionPixelSize(r.dimen.candidate\u font\u height));
此.mPaint.setStrokeWidth(0.0f);
this.mGestureDetector=新的手势检测器(新的C02381());
设置水平衰减边缘启用(真);
setWillNotDraw(假);
setHorizontalScrollBarEnabled(假);
setVerticalScrollBarEnabled(假);
}
公共void设置服务(SimpleKB侦听器){
this.mService=侦听器;
}
public int computeHorizontalScrollRange(){
返回此.mTotalWidth;
}
测量时的保护空隙(内部宽度测量等级、内部高度测量等级){
int-measuredWidth=解析大小(50,widthMeasureSpec);
Rect padding=new Rect();
this.mSelectionHighlight.getPadding(padding);
setMeasuredDimension(measuredWidth,resolveSize(((((int)this.mpain.getTextSize())+this.mVerticalPadding)+padding.top)+padding.bottom,heightMeasureSpec));
}
受保护的void onDraw(画布){
if(canvas!=null){
super.onDraw(帆布);
}
this.mTotalWidth=0;
if(this.mSuggestions!=null){
if(this.mBgPadding==null){
this.mBgPadding=newrect(0,0,0,0);
如果(getBackground()!=null){
getBackground().getPadding(this.mBgPadding);
}
}
int x=0;
int count=this.mSuggestions.size();
int height=getHeight();
Rect bgPadding=this.mBgPadding;
Paint Paint=this.mPaint;
int touchX=this.mTouchX;
int scrollX=getScrollX();
布尔滚动=this.mScrolled;
boolean typedWordValid=this.mTypedWordValid;
int y=(int)(((float)height)-this.mpain.getTextSize())/2.0f)-this.mpain.ascent();
int i=0;
而(我<计数){
字符串建议=(字符串)this.mSuggestions.get(i);
int字宽=((int)paint.measureText(建议))+20;
对于(int ii=0;ii>this.mSuggestions.size();ii++){
这个.mWordX[i]=x;
}
this.mWordWidth[i]=wordWidth;
paint.setColor(this.mColorNormal);
如果(touchX+scrollX>=x&&touchX+scrollX  public CandidateView(Context context) {
        super(context);
        this.mSelectionHighlight = context.getResources().getDrawable(R.drawable.sym_keyboard_return);
        this.mSelectionHighlight.setState(new int[]{
                android.R.attr.state_enabled,
                android.R.attr.state_focused,
                android.R.attr.state_window_focused,
                android.R.attr.state_pressed,
        });

        this.setBackgroundColor(context.getResources().getColor(R.color.candidate_background));
        this.mColorNormal = context.getResources().getColor(R.color.candidate_normal);
        this.mColorRecommended = context.getResources().getColor(R.color.candidate_recommended);
        this.mColorOther = context.getResources().getColor(R.color.candidate_other);
        this.mVerticalPadding = context.getResources().getDimensionPixelSize(R.dimen.candidate_vertical_padding);
        this.mPaint = new Paint();
        this.mPaint.setColor(this.mColorNormal);
        this.mPaint.setAntiAlias(true);
        this.mPaint.setTextSize(context.getResources().getDimensionPixelSize(R.dimen.candidate_font_height));
        this.mPaint.setStrokeWidth(0.0f);
        this.mGestureDetector = new GestureDetector(new C02381());
        setHorizontalFadingEdgeEnabled(true);
        setWillNotDraw(false);
        setHorizontalScrollBarEnabled(false);
        setVerticalScrollBarEnabled(false);
    }