安卓致命信号11(SIGSEGV)轮盘赌教程

问题描述 投票:-1回答:1

我是一个新的和初学者,其实对Android的事情,我按照这个教程。这个轮盘赌 我跟着它做了一切与教程完全相同的事情... ... 但是那个教程已经有一年了。现在我使用的是基于JDK Java 8的Android Studio最新版本。

这是我的gradle构建

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28


    defaultConfig {
        applicationId "com.example.sixgroup"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.jakewharton:butterknife:10.2.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}

我的代码。

*************

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.Random;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

public class MainActivity extends AppCompatActivity {

    // sectors of our wheel (look at the image to see the sectors)
    private static final String[] sectors = { "32 red", "15 black",
            "19 red", "4 black", "21 red", "2 black", "25 red", "17 black", "34 red",
            "6 black", "27 red","13 black", "36 red", "11 black", "30 red", "8 black",
            "23 red", "10 black", "5 red", "24 black", "16 red", "33 black",
            "1 red", "20 black", "14 red", "31 black", "9 red", "22 black",
            "18 red", "29 black", "7 red", "28 black", "12 red", "35 black",
            "3 red", "26 black", "zero"
    };
    @BindView(R.id.spinBtn)
    Button spinBtn;
    @BindView(R.id.resultTv)
    TextView resultTv;
    @BindView(R.id.wheel)
    ImageView wheel;
    // We create a Random instance to make our wheel spin randomly
    private static final Random RANDOM = new Random();
    private int degree = 0;
    // We have 37 sectors on the wheel, we divide 360 by this value to have angle for each sector
    // we divide by 2 to have a half sector
    private static final float HALF_SECTOR = 360f / 37f / 2f;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
    }

    @OnClick(R.id.spinBtn)
    public void spin(View v) {


        // we calculate random angle for rotation of our wheel
        degree = RANDOM.nextInt(360) + 720;
        int degreeOld = degree % 360;
        // rotation effect on the center of the wheel
        RotateAnimation rotateAnim = new RotateAnimation(degreeOld, degree,
                RotateAnimation.RELATIVE_TO_SELF, 0.5f, RotateAnimation.RELATIVE_TO_SELF, 0.5f);
        rotateAnim.setDuration(3600);
        rotateAnim.setFillAfter(true);
        rotateAnim.setInterpolator(new DecelerateInterpolator());
        rotateAnim.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {
                // we empty the result text view when the animation start
                resultTv.setText("");
            }

            @Override
            public void onAnimationEnd(Animation animation) {
                // we display the correct sector pointed by the triangle at the end of the rotate animation
                resultTv.setText(getSector(360 - (degree % 360)));
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });

        // we start the animation
        wheel.startAnimation(rotateAnim);
    }

    private String getSector(int degrees) {
        int i = 0;
        String text = null;

        do {
            // start and end of each sector on the wheel
            float start = HALF_SECTOR * ((i * 2) + 1);
            float end = HALF_SECTOR * ((i * 2) + 3);

            if (degrees >= start && degrees < end) {
                // degrees is in [start;end[
                // so text is equals to sectors[i];
                text = sectors[i];
            }

            i++;
            // now we can test our Android Roulette Game :)
            // That's all !
            // In the second part, you will learn how to add some bets on the table to play to the Roulette Game :)
            // Subscribe and stay tuned !

        } while (text == null  &&  i < sectors.length);
            return text;
    }
}
**************

一切都在更新... 所以不知道为什么我得到

Alibc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x68 in tid 12075 (xample.6group)

的日志。

2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void com.example.sixgroup.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:46)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7183)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1220)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2910)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:3032)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1696)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:105)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.os.Looper.loop() (Looper.java:164)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6944)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
2020-05-30 18:02:43.851 25578-25578/com.example.sixgroup I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
2020-05-30 18:02:44.048 25578-25578/com.example.sixgroup A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x68 in tid 25578 (xample.sixgroup)
java android android-studio fatal-error
1个回答
0
投票

哦,好吧,伙计们,我不知道,也不确定到底是什么问题... ... 但我所做的是删除依赖(ButterKnife),并在OnCreate里面添加我自己的代码。这样就可以工作了吗?!!! 首先在日志中,它是一样的,但给出[-2],这对一个字符串区域来说是不可能的。这可能是可能的问题。

谢谢您

© www.soinside.com 2019 - 2024. All rights reserved.