web-dev-qa-db-ja.com

java.lang.IllegalArgumentException:無効なRegion.Op-ボタンのバックグラウンドエラーのINTERSECTおよびDIFFERENCEのみ

Androidボタンのバックグラウンドエラー

私が追加しようとすると

Android:background="@drawable/roundedbutton"

.xmlに

<Button
     Android:id="@+id/button_stop"
     style="@Android:style/Widget.Button"
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content"
     Android:layout_margin="3dp"
     Android:background="@drawable/roundedbutton"
     Android:layout_weight="1"
     Android:text="stop"
     Android:textSize="18sp" />

roundedbutton.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <solid Android:color="@color/colorPrimary" />
    <corners Android:bottomRightRadius="8dp"
        Android:bottomLeftRadius="8dp"
        Android:topRightRadius="8dp"
        Android:topLeftRadius="8dp"/>
</shape>

ボタンが空白になり、Android St​​udio 3.2.1でエラーが発生する

Java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
    at Android.graphics.Canvas.checkValidClipOp(Canvas.Java:779)
    at Android.graphics.Canvas.clipRect(Canvas.Java:826)
    at Android.view.ViewGroup_Delegate.drawShadow(ViewGroup_Delegate.Java:86)
    at Android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.Java:58)
    at Android.view.ViewGroup.drawChild(ViewGroup.Java:4333)
    at Android.view.ViewGroup.dispatchDraw(ViewGroup.Java:4112)
    at Android.view.View.draw_Original(View.Java:20075)
    at Android.view.View_Delegate.draw(View_Delegate.Java:68)
    at Android.view.View.draw(View.Java:19849)
    at Android.view.ViewGroup.drawChild_Original(ViewGroup.Java:4333)
    at Android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.Java:63)
    at Android.view.ViewGroup.drawChild(ViewGroup.Java:4333)
    at Android.view.ViewGroup.dispatchDraw(ViewGroup.Java:4112)
    at Android.view.View.draw_Original(View.Java:20075)
    at Android.view.View_Delegate.draw(View_Delegate.Java:68)
    at Android.view.View.draw(View.Java:19849)
    at Android.view.ViewGroup.drawChild_Original(ViewGroup.Java:4333)
    at Android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.Java:63)
    at Android.view.ViewGroup.drawChild(ViewGroup.Java:4333)
    at Android.view.ViewGroup.dispatchDraw(ViewGroup.Java:4112)
    at Android.view.View.draw_Original(View.Java:20075)
    at Android.view.View_Delegate.draw(View_Delegate.Java:68)
    at Android.view.View.draw(View.Java:19849)
    at Android.view.ViewGroup.drawChild_Original(ViewGroup.Java:4333)
    at Android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.Java:63)
    at Android.view.ViewGroup.drawChild(ViewGroup.Java:4333)
    at Android.view.ViewGroup.dispatchDraw(ViewGroup.Java:4112)
    at Android.view.View.draw_Original(View.Java:20210)
    at Android.view.View_Delegate.draw(View_Delegate.Java:56)
    at Android.view.View.draw(View.Java:20177)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.renderAndBuildResult(RenderSessionImpl.Java:405)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.renderAndBuildResult(RenderSessionImpl.Java:552)
    at com.Android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.Java:426)
    at com.Android.layoutlib.bridge.BridgeRenderSession.render(BridgeRenderSession.Java:108)
    at com.Android.ide.common.rendering.api.RenderSession.render(RenderSession.Java:154)
    at com.Android.ide.common.rendering.api.RenderSession.render(RenderSession.Java:136)
    at com.Android.tools.idea.rendering.RenderTask.lambda$renderInner$5(RenderTask.Java:671)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)

ありがとうございました。

12
Mike Lin

UPDATE

この修正はAndroid St​​udio 3.5 Canary 2に含まれます。

enter image description here

Java.lang.IllegalArgumentException:無効なRegion.Op-INTERSECTおよびDIFFERENCEのみ

targetSdkVersion 28の問題

これはPで強制され始めたように見えます: https://developer.Android.com/reference/Android/graphics/Canvas#clipRect(Android.graphics.RectF、%20Android.graphics.Region.Op) =

ここでも報告

ケースの一時的な解決策

つかいます

<corners
    Android:radius="8dp"/>

の代わりに

<corners Android:bottomRightRadius="8dp"
    Android:bottomLeftRadius="8dp"
    Android:topRightRadius="8dp"
    Android:topLeftRadius="8dp"/>
19
Nilesh Rathod

私の側でも同じ問題が発生しましたが、修正されましたbuild.gradletargetSdkVersion 28 to 27を変更します。ありがとう

8

これは私のためにそれを修正したものです:

.setCropShape(Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? CropImageView.CropShape.RECTANGLE : CropImageView.CropShape.OVAL)
4
Marc Alexander

アクティビティでこの問題が発生した場合、ここで提案されている解決策を使用してレポートを検出できない場合、このエラーを生成するinstatbleライブラリを使用することになります。このライブラリのバージョンを変更しようとすると、問題が解決します

0
Special One

これを試して

    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <stroke Android:width="2dp" Android:color="@color/black"   />
    <solid Android:color="@color/black" />
    <corners Android:radius="7dp" />

</shape>
0
pratik vekariya

「style = "@ Android:style/Widget.Button"」を削除してみてください。

 <Button
            Android:id="@+id/button_stop"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_margin="3dp"
            Android:background="@drawable/roundedbutton"
            Android:layout_weight="1"
            Android:text="stop"
            Android:textSize="18sp" />
0
Abdul

私にとっては、私が変更されたときに修正されました

<corners Android:bottomRightRadius="8dp"
Android:bottomLeftRadius="8dp"
Android:topRightRadius="8dp"
Android:topLeftRadius="8dp"/>

<corners
Android:radius="8dp"/>

buttondesign.xmlファイルで置き換え

<Button
        Android:id="@+id/btn_verify"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/yellow_btn_bg"
        Android:text="Verify"
        Android:textSize="16sp"
        Android:layout_margin="20dp"
        Android:layout_marginLeft="20dp"
        Android:layout_marginRight="20dp"
        Android:layout_marginTop="20dp"
        Android:layout_marginBottom="20dp"
        Android:layout_weight="1"
        Android:textColor="@color/white"
        />

<Button
        Android:id="@+id/btn_verify"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/yellow_btn_bg"
        Android:text="Verify"
        Android:textSize="16sp"
        Android:layout_margin="20dp"
        Android:layout_weight="1"
        Android:textColor="@color/white"
        />
0
Soumya Mishra