0

I'm new and beginner actually to Android thing, and I followed this tutorial This Roulette I followed it and done everything exact same as the tutorial... But that tutorial is one year old.. Right now am using Android Studio latest version based on JDK Java 8..

This is my gradle build

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'
}

My Code:

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

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;
    }
}
**************

Everything update.. So am not sure why am getting

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x68 in tid 12075 (xample.sixgroup)

The log:

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)
Br.GH
  • 27
  • 1
  • 8
  • SIGSEGV errors can be an absolute nightmare to solve as they could be one of many different reasons. To start you need to look into the exception stacktrace in more detail. There is a huge post about this here https://stackoverflow.com/questions/17840521/android-fatal-signal-11-sigsegv-at-0x636f7d89-code-1-how-can-it-be-tracked perhaps update your question and add your stacktrace in here – Jaime May 30 '20 at 14:53
  • @Jaime I added logcat, IS that the thing you meant??? I didn't find something like staktrace, Pls take a look. – Br.GH May 30 '20 at 15:07

1 Answers1

0

Ohkay guys, I don't know and am not sure what was the problem actually... But what I have done is removing the dependence(ButterKnife) and adding my own code inside OnCreate.. This made it work??!!! First in the log it was same but giving [-2] which is impossible for a String Area.. This could the possible problem.

Thank you

Br.GH
  • 27
  • 1
  • 8