The complete error is:
JNI DETECTED ERROR IN APPLICATION: thread Thread [1, tid = 15011, Runnable, Thread * = 0xa7d85400, peer = 0x7593a268, "main"] using JNI after critical get in call to DeleteGlobalRef
Occurs in a recursive method that adjusts the text size in a textview:
protected void ajustarTexto(int espacio){
// tamaño en pixeles
float tamanno = outputTxt.getTextSize() -2;
outputTxt.setTextSize(TypedValue.COMPLEX_UNIT_PX, tamanno);
int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED);
int widthMeasureSpec = MeasureSpec.makeMeasureSpec(ancho, MeasureSpec.EXACTLY);
outputTxt.measure(widthMeasureSpec,heightMeasureSpec);
alturaMedida = outputTxt.getMeasuredHeight();
Log.d(TAG, "ajustarTexto: altura medida= "+alturaMedida);
if(espacio <= alturaMedida) ajustarTexto(espacio);
}
The method works very well until you turn to it many times in a row, then throwing this error:
07-15 12: 23: 28.758 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1806
07-15 12: 23: 28.765 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1558
07-15 12: 23: 28,772 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1529
07-15 12: 23: 28.779 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1397
07-15 12: 23: 28.786 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1381
07-15 12: 23: 28.793 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1344
07-15 12: 23: 28,800 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1230
07-15 12: 23: 28,806 15011-15011 / com.gonpas.diloflo.full D / CanvasVirgin: adjustText: measured height = 1205
07-15 12:23:28.816 15011-15011/com.gonpas.diloflo.full E/art: JNI DETECTED ERROR IN APPLICATION: thread Thread[1,tid=15011,Runnable,Thread*=0xa7d85400,peer=0x7593a268,"main"] using JNI after critical get in call to DeleteGlobalRef
from float android.graphics.Paint.nGetRunAdvance(long, long, char[], int, int, int, int, boolean, int)
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 obj=0x7593a268 self=0xa7d85400
| sysTid=15011 nice=0 cgrp=default sched=0/0 handle=0xab267534
| state=R schedstat=( 11629069753 2112232793 6391 ) utm=1068 stm=94 core=1 HZ=100
| stack=0xbe392000-0xbe394000 stackSize=8MB
| held mutexes= "mutator lock"(shared held)
at android.graphics.Paint.nGetRunAdvance(Native method)
at android.graphics.Paint.getRunAdvance(Paint.java:2591)
at android.graphics.Paint.getRunAdvance(Paint.java:2623)
at android.text.TextLine.handleText(TextLine.java:733)
at android.text.TextLine.handleRun(TextLine.java:884)
at android.text.TextLine.measureRun(TextLine.java:393)
at android.text.TextLine.measure(TextLine.java:283)
at android.text.TextLine.metrics(TextLine.java:257)
at android.text.BoringLayout.isBoring(BoringLayout.java:318)
at android.widget.TextView.makeSingleLayout(TextView.java:7055)
at android.widget.TextView.makeNewLayout(TextView.java:6947)
at android.widget.TextView.onMeasure(TextView.java:7361)
at android.view.View.measure(View.java:20084)
at com.gonpas.diloflo.box.LienzoVirgen.ajustarTexto(LienzoVirgen.java:220)
at com.gonpas.diloflo.box.LienzoVirgen.ajustarTexto(LienzoVirgen.java:223)
at com.gonpas.diloflo.box.LienzoVirgen.ajustarTexto(LienzoVirgen.java:223)
at com.gonpas.diloflo.box.LienzoVirgen.ajustarTexto(LienzoVirgen.java:223)
... repeated 53 times
at com.gonpas.diloflo.box.LienzoVirgen.onDraw(LienzoVirgen.java:147)
at android.view.View.draw(View.java:17320)
at android.view.View.updateDisplayListIfDirty(View.java:16259)
at android.view.View.draw(View.java:17070)
at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at android.support.constraint.ConstraintLayout.dispatchDraw(ConstraintLayout.java:1966)
at android.view.View.updateDisplayListIfDirty(View.java:16251)
at android.view.View.draw(View.java:17070)
07-15 12:23:28.817 15011-15011/com.gonpas.diloflo.full E/art: at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:16251)
at android.view.View.draw(View.java:17070)
at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:16251)
at android.view.View.draw(View.java:17070)
at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:16251)
at android.view.View.draw(View.java:17070)
at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at android.view.View.updateDisplayListIfDirty(View.java:16251)
at android.view.View.draw(View.java:17070)
at android.view.ViewGroup.drawChild(ViewGroup.java:3890)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3676)
at com.android.internal.policy.DecorView.dispatchDraw(DecorView.java:792)
at android.view.View.draw(View.java:17332)
at com.android.internal.policy.DecorView.draw(DecorView.java:778)
at android.view.View.updateDisplayListIfDirty(View.java:16259)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:661)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:667)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:775)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3188)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2981)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2569)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1462)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6965)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:907)
at android.view.Choreographer.doCallbacks(Choreographer.java:709)
at android.view.Choreographer.doFrame(Choreographer.java:644)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:893)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke!(Native method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
line 220 corresponds to: outputTxt.measure (widthMeasureSpec, heightMeasureSpec); in the method
Can someone guide me with the problem?