私はこのようなコードを持っている:アプリケーションがクラッシュ
@Override
public void onDrawOver(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
drawGradient(canvas, parent);
drawStages(canvas, parent);
}
private void drawStages(final Canvas canvas, RecyclerView parent) {
final int parentLeft = parent.getPaddingLeft();
final int parentRight = parentLeft + mLeftPadding + mIconSize + mRightPadding;
int childCount = parent.getChildCount();
for (int i = 0; i < childCount - 1; i++) {
View child = parent.getChildAt(i);
LineupLayoutManager.LayoutParams params =
(LineupLayoutManager.LayoutParams) child.getLayoutParams();
final int parentTop = child.getTop() + params.topMargin;
final int parentBottom = child.getBottom() + params.bottomMargin;
int height = parentBottom - parentTop;
final int paddingVertical = Math.round((height - mIconSize)/2);
try {
String link = findPlaceById(params.getPlaceId(),mStageList).getImg();
Picasso.with(context).load(link).resize(150,150).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
final Drawable drawable = new BitmapDrawable();
drawable.setBounds(parentLeft + mLeftPadding, parentTop + paddingVertical,
parentRight - mRightPadding, parentBottom - paddingVertical);
Canvas canvas1 = new Canvas(bitmap);
drawable.draw(canvas1);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
} catch (IndexOutOfBoundsException e) {
Log.e(LOG_TAG, Log.getStackTraceString(e));
}
}
}
全体のコードは、問題があるRecyclerView.ItemDecoration から拡張したクラス内にあること、私はそれを実行し、アプリ
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x58 in tid 17542
また、bitmap.drawをrunOnUIThread()に挿入しようとしましたが、成功しませんでした。
少しの調査の後、私はピカソが何とかキャンバスを妨害していることを発見しました。つまり、ピカソのメソッドの外に置くと、すべてうまく動作します。
完全なlogcat出力を投稿してください。 – csmckelvey
問題はlogcatの出力がないことです、私はここに投稿しています。あなただけが表示されるエラー – Traabefi
0x636f7d89(コード= 1)で[Android Fatal signal 11(SIGSEGV)]の重複の可能性があります。どのようにそれを追跡することができますか?](http://stackoverflow.com/questions/17840521/android-fatal-signal-11-sigsegv-at-0x636f7d89-code-1-how-can-it-be-tracked) – csmckelvey