android - java.lang.IllegalMonitorStateException : unlock of unowned monitor at java. util.Random.nextGaussian(Random.java:187)

标签 android forceclose

当调用内置方法 nextGaussian 抛出一个 IllegalMonitorStateException: unlock of unowned monitor

double dispersion = RAND.nextGaussian() * 0.2;

在里面

    @Override
        public void stroke(Canvas c, float x, float y) {
}

这里调用

case MotionEvent.ACTION_MOVE:
            style.stroke(mCanvas, x, y);
            break;
        }
        return true;
    }

然后在 Surface.java

    @Override
        public boolean onTouchEvent(MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_UP:
                getHistory().saveState();
                break;
            }
            final float x = panHelper.translateX(event.getX());
            final float y = panHelper.translateY(event.getY());


                return controller.onTouch(event.getAction(), x, y);

        }

代码崩溃:

java.lang.IllegalMonitorStateException: unlock of unowned monitor .

顶一下!

最佳答案

我怀疑这是操作系统中的错误(我遇到了完全相同的错误)。您可以尝试使用自制的高斯随机数生成器。这是我在一些旧代码中找到的 - 抱歉,我不记得我是从哪里得到的。

Random rand;
Boolean RG_y2_valid = false;
Double RG_y1;
Double RG_y2;

double rand_gauss()
{
    double x1, x2, w;

    if (RG_y2_valid)
    {
        RG_y2_valid = false;
        return RG_y2;
    }

    do
    {
        x1 = 2.0 * rand.nextDouble() - 1.0;
        x2 = 2.0 * rand.nextDouble() - 1.0;
        w = x1 * x1 + x2 * x2;
    } while ( w >= 1.0 );

    w = Math.sqrt( (-2.0 * Math.log( w ) ) / w );
    RG_y1 = x1 * w;
    RG_y2 = x2 * w;

    RG_y2_valid = true;

    return RG_y1;
}

关于android - java.lang.IllegalMonitorStateException : unlock of unowned monitor at java. util.Random.nextGaussian(Random.java:187),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353533/

相关文章:

java - 如何在不生根的情况下 hibernate 或强制停止应用程序..?

android - 如何以编程方式强制停止我的 android 应用程序?

Android 应用程序在尝试启动新 Activity 时崩溃

android:异常错误的帮助(行号)

android - 模拟 Nexus 10

Android 不从内存中释放位图

java - 在 Eclipse android.support 中构建 Android 项目无法解析为类型

Android 位置管理器错误 + 附加日志文件

android - java.lang.RuntimeException : system server dead? 错误

java - 致命异常 : main ava. lang.RuntimeException : Unable to instantiate application android. app.Application : java. lang.NullPointerException