在android studio中生成符号apk时出错
嗨,如果有人能帮忙的话,我在这里面临问题 我正在与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
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);
}