Android Studio приложение аварийно завершает работу, когда я начинаю его на handy без отладчика

Со вчерашнего дня мое приложение зависает при запуске без отладчика. Когда я отлаживаю приложение все работает хорошо. Я не знаю, должен ли я опубликовать код, я думаю, что это слишком много.
Я использую Google Maps API.

Logcat (Ошибка):

10-03 09:53:12.172 666-680/? E / датчики: опрос() не удалось (прервано
системный вызов) 10-03 09:53:15.802 666-680/? E / датчики: опрос() не удалось
(Прерванный системный вызов) 10-03 09:53: 17.128
18439-18520 / com.образец.luick.boat_rc E / dalvikvm: фатальный
spin-on-suspend, сброс потоков 10-03 09:53: 17.250
18439-18520 / com.образец.luick.boat_rc E / dalvikvm: threadid=31: застрял
на threadid=11, отказавшись от 10-03 09:53: 17.566 666-687/? E / ANRManager:
ANR в com.образец.luick.boat_rc
(com.образец.luick.boat_rc/.MainActivity)
Причина: вход диспетчеризации тайм-аут (ожидание, потому что коснулось окна не закончил
обработка входных событий, которые были ранее доставлены в него.)
Нагрузка: 10.36 / 10.26 / 10.14
Android время :[2016-10-03 09:53:17.565] [167215,125]
Использование CPU от 0ms до 6136ms позже:
97% 18439 / com.образец.luick.boat_rc: 95% пользователь + 1.6% ядро / ошибки: 277
незначительный
23% 666 / system_server: 18% user + 5% kernel / faults: 437 minor
5.7% 163 / adbd: 0.4% user + 5.2% kernel / faults: 569 minor
3.4% 12471 / logcat: 1.7% пользователь + 1.6% ядро
1.7% 934 / com.андроид.телефон: 0.9% user + 0.8% kernel / faults: 153 minor
1.4% 741 / com.андроид.systemui: 1.1% user + 0.3% kernel / faults: 112 minor
0.8% 18117/kworker / 0:1: 0% пользователь + 0.8% ядро
0% 948 / com.mediatek.voicecommand: 0% user + 0% kernel / faults: 252 minor
6 основных
0% 963 / com.mediatek.bluetooth: 0% user + 0% kernel / faults: 175 minor
0% 974 / com.tinno.жест.телефон: 0% user + 0% kernel / faults: 240 minor
0.3% 18437/kworker / 1:1: 0% пользователь + 0.3% ядро
0% 2/ kthreadd: 0% пользователь + 0% ядро
0% 63/mmcqd / 0: 0% пользователь + 0% ядро
0.1% 68 / disp_config_upd: 0% пользователь + 0.1% ядро
0% 125 / debuggerd: 0% user + 0% kernel / faults: 75 minor
0.1% 132 / surfaceflinger: 0% пользователь + 0.1% ядро
0% 845 / tx_thread: 0% user + 0% kernel
0% 916 / com.гуглить.андроид.СБМ.постоянный адрес статьи: 0% user + 0% kernel
0.1% 12991 / kworker / u: 0: 0% пользователь + 0.1% ядро
+0% 18843 / миграция / 2: 0% пользователь + 0% ядро
+ 0% 18847/kworker/2:0: 0% пользователь + 0% ядро
+ 0% 18848/ksoftirqd/2: 0% пользователь + 0% ядро
+ 0% 18849/kworker/2:1: 0% пользователь + 0% ядро
51% всего: 44% пользователь + 7.1% ядро + 0% iowait

Logcat (Warn):

                                                        10-03 09:58:15.311 666-687/? E/ActivityManager: writeStringToFile error:

/sys / kernel/debug/tracing / tracing_on java.io.FileNotFoundException:
/sys / kernel/debug/tracing/tracing_on: open failed: ENOENT (нет таких
файл или каталог) 10-03 09:58:15.312 666-687/? E / ActivityManager:
ошибка writeStringToFile:
/sys / ядро/отладка/связующее / transaction_log_enable
java.io.FileNotFoundException:
/sys / kernel/debug/binder / transaction_log_enable: open failed: ENOENT
(Нет такого файла или каталога)

10-03 09:58: 18.855 19017-19026/com.образец.luick.boat_rc E / dalvikvm:
Fatal spin-on-suspend, сброс потоков 10-03 09:58: 18.960
19017-19026 / com.образец.luick.boat_rc E / dalvikvm: threadid=4: застрял
threadid=11, сдается

10-03 09:58:22.018 666-687/? E / ANRManager: ANR in
com.образец.luick.boat_rc (com.образец.luick.boat_rc/.MainActivity)
Причина: вход диспетчеризации тайм-аут (ожидание, потому что коснулось окна не закончил
обработка входных событий, которые были ранее доставлены в него.)
Нагрузка: 9.41 / 9.62 / 9.89
Android время :[2016-10-03 09:58:22.16] [167519,562]
Использование процессора от 2080ms до-6692ms назад:
97% 19017 / com.образец.luick.boat_rc: 96% user + 1.1% kernel / faults: 319
незначительный
17% 666 / system_server: 13% user + 3.4% kernel / faults: 729 minor
4.9% 163 / adbd: 0.5% user + 4.3% kernel / faults: 773 minor
3.6% 12471 / logcat: 1.5% пользователь + 2% ядро
1.2% 741 / com.андроид.systemui: 0.9% user + 0.3% kernel / faults: 29 minor
1.2% 934 / com.андроид.телефон: 0.7% user + 0.4% kernel / faults: 2 minor
0.5% 18117 / kworker / 0:1: 0% пользователь + 0.5% ядро
0.4% 132 / surfaceflinger: 0.3% пользователь + 0.1% ядро
0% 974 / com.tinno.жест.телефон: 0% user + 0% kernel / faults: 1 minor
0.3% 19015/kworker / 1:1: 0% пользователь + 0.3% ядро
0.1% 948 / com.mediatek.voicecommand: 0.1% user + 0% kernel
0.1% 963 / com.mediatek.bluetooth: 0% пользователь + 0% ядро
0.2% 19011 / kworker / 0:0: 0% пользователь + 0.2% ядро
0% 6 / миграция / 0: 0% пользователь + 0% ядро
0% 56 / bat_thread_kthr: 0% пользователь + 0% ядро
0% 63/mmcqd / 0: 0% пользователь + 0% ядро
0.1% 68 / disp_config_upd: 0% пользователь + 0.1% ядро
0% 162 / em_svr: 0% пользователь + 0% ядро
0.1% 19174 / kworker / u: 2: 0% пользователь + 0.1% ядро
+0% 19295 / миграция / 2: 0% пользователь + 0% ядро
+ 0% 19296/kworker/2:0: 0% пользователь + 0% ядро
+ 0% 19297/ksoftirqd/2: 0% пользователь + 0% ядро
+ 0% 19298/kworker/2:1: 0% пользователь + 0% ядро
51% итого: 45% пользователь + 6.3% ядро 10-03 09:58: 22.020 666-687/? E / ActivityManager: получить crashInfo
неудача.

Декларация:

<?xml version="1.0" encoding="utf-8"?>

<uses-feature android_glEsVersion="0x00020000" android_required="true" />

<uses-permission android_name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android_name="android.permission.INTERNET" />
<uses-permission android_name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android_name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android_name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android_name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android_name="android.permission.ACCESS_GPS" />
<uses-permission android_name="android.permission.ACCESS_LOCATION" />
<uses-permission android_name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android_name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android_allowBackup="true"
    android_icon="@mipmap/ic_launcher"
    android_label="@string/app_name"
    android_supportsRtl="true"
    android_theme="@style/AppTheme"
    android_name="android.support.multidex.MultiDexApplication">
    <activity android_name=".MainActivity"
        android_theme="@style/Theme.AppCompat.DayNight.NoActionBar"
        android_screenOrientation="landscape">
        <intent-filter>
            <action android_name="android.intent.action.MAIN" />

            <category android_name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <meta-data
        android_name="com.google.android.gms.version"
        android_value="@integer/google_play_services_version" />

    <meta-data android_name="com.google.android.geo.API_KEY" android_value="AIzaSyAL11W__n26lMvJ9y1Ea1jkvBR19REhE_g" />
</application>

MainActivity:

   package com.example.luick.boat_rc;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

import com.example.luick.boat_rc.de.ye.boat_conCONTROL.GPSTracker;

import android.location.Location;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.format.Formatter;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.Switch;
import android.widget.Toast;

import com.example.luick.boat_rc.de.ye.boat_conCONTROL.CONNECT;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends AppCompatActivity implements SensorEventListener, OnMapReadyCallback {


    public static GoogleMap mMap;
    public static String RASP_IP = "192.168.42.1";
    public static boolean STATUS = false;
    public static SensorManager sensorManager;
    public static boolean KIPP = false;
    public static Switch S_K;
    public static ImageButton B_RELOAD;
    public static String MODE;
    public static ImageButton uf;
    public static ImageButton f;
    public static ImageButton s;
    public static ImageButton ra;
    public static Switch is;
    public static Switch tr;
    public static ImageView wifi_warn;
    private static final String TAG = "MainActivity";
    SupportMapFragment sMapF;
    GPSTracker gps;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sMapF = SupportMapFragment.newInstance();
        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        B_RELOAD = (ImageButton) findViewById(R.id.B_RELOAD);
        //i2.setEnabled(false);
        uf = (ImageButton) findViewById(R.id.uf);
        f = (ImageButton) findViewById(R.id.f);
        s = (ImageButton) findViewById(R.id.s);
        ra = (ImageButton) findViewById(R.id.r);
        s.setImageResource(R.drawable.up);
        f.setImageResource(R.drawable.upg2);
        uf.setImageResource(R.drawable.upg3);
        is = (Switch) findViewById(R.id.S_IS);
        tr = (Switch) findViewById(R.id.S_TR);
        wifi_warn = (ImageView) findViewById(R.id.wifi_warn);
        wifi_warn.setVisibility(View.INVISIBLE);
        Thread si = new Thread(new MainActivity.SEND_IP());
        si.start();
        is.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    CONNECT.writer_sens_front.println("ON");
                    CONNECT.writer_sens_front.flush();
                    Toast.makeText(getApplicationContext(), "Inelligent_ON", Toast.LENGTH_SHORT).show();
                } else {
                    CONNECT.writer_sens_front.println("OFF");
                    CONNECT.writer_sens_front.flush();
                    Toast.makeText(getApplicationContext(), "Inelligent_OFF", Toast.LENGTH_SHORT).show();
                }

            }
        });
        tr.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    CONNECT.writer_track.println("ON");
                    CONNECT.writer_track.flush();
                    Toast.makeText(getApplicationContext(), "TRACKING....", Toast.LENGTH_SHORT).show();
                } else {
                    CONNECT.writer_track.println("OFF");
                    CONNECT.writer_track.flush();
                    Toast.makeText(getApplicationContext(), "TRACKING_OFF", Toast.LENGTH_SHORT).show();
                }

            }
        });
        ra.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {

                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    KIPP = true;
                    ra.setImageResource(R.drawable.ar);

                } else if (event.getAction() == MotionEvent.ACTION_MOVE) {

                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    KIPP = false;
                    ra.setImageResource(R.drawable.dr);
                }

                return true;
            }
        });
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        android.support.v4.app.FragmentManager sFm = getSupportFragmentManager();
        sFm.beginTransaction().add(R.id.map, sMapF).commit();
        sMapF.getMapAsync(this);
        //gps = new GPSTracker(MainActivity.this);
       //Thread CAR_MAP_OBJECT = new Thread(new MainActivity.CAR_MAP_OBJECT());
        //CAR_MAP_OBJECT.start();

        //Thread USER_MAP_OBJECT = new Thread(new MainActivity.USER_MAP_OBJECT());
        //USER_MAP_OBJECT.start();
    }


    public void WIFI() {
        Context context = MainActivity.this;
        WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
        int numberOfLevels = 5;
        WifiInfo wifiInfo = wifiManager.getConnectionInfo();
        int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
        if (Math.round(level) < 2) {
            wifi_warn.setVisibility(View.VISIBLE);
        } else {
            wifi_warn.setVisibility(View.INVISIBLE);
        }
    }

    public void B_RELOAD(View v) {
        Thread t = new Thread(new CONNECT());
        t.start();
    }

    public void s(View v) {
        MODE = "s";
        s.setImageResource(R.drawable.up);
        f.setImageResource(R.drawable.upg2);
        uf.setImageResource(R.drawable.upg3);
        if (STATUS == true) {
            CONNECT.writer_modi.println("s");
            CONNECT.writer_modi.flush();
            Toast.makeText(getApplicationContext(), "SLOW", Toast.LENGTH_SHORT).show();
        }
    }

    public void f(View v) {
        MODE = "f";
        s.setImageResource(R.drawable.upg);
        f.setImageResource(R.drawable.up2);
        uf.setImageResource(R.drawable.upg3);
        if (STATUS == true) {
            CONNECT.writer_modi.println("f");
            CONNECT.writer_modi.flush();
            Toast.makeText(getApplicationContext(), "FAST", Toast.LENGTH_SHORT).show();
        }
    }

    public void uf(View v) {
        MODE = "uf";
        s.setImageResource(R.drawable.upg);
        f.setImageResource(R.drawable.upg2);
        uf.setImageResource(R.drawable.up3);
        if (STATUS == true) {
            CONNECT.writer_modi.println("uf");
            CONNECT.writer_modi.flush();
            Toast.makeText(getApplicationContext(), "ULTRA_FAST", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onSensorChanged(SensorEvent event) {


        WIFI();
        if (KIPP == true) {
            float output = ((event.values[1] - 1) * (500 - 1)) / (20 - 1) + 1;
            //output= ((input-minInput) * (maxOutput-minOutput)) / (maxInput-minInput) + minOutput;
            float output_eng = ((event.values[2] - 1) * (500 - 1)) / (20 - 1) + 1;
            //output= ((input-minInput) * (maxOutput-minOutput)) / (maxInput-minInput) + minOutput;

            int send = Math.round(output);

            int send_eng = Math.round(output_eng);

            if (STATUS == true) {
                //     if (send < 100 && send > -100) {
                //      CONNECT.writer_dir.println("15");
                //      CONNECT.writer_dir.flush();
                //  } else if (send > 100) {
                //      CONNECT.writer_dir.println("21");
                //      CONNECT.writer_dir.flush();

                //  } else if (send < -100) {
                //      CONNECT.writer_dir.println("10");
                //      CONNECT.writer_dir.flush();

                //Lenken
                if (MODE == "s" || MODE == null) {
                    if (send < 100 && send > -100) {
                        CONNECT.writer_dir.println("middle");
                        CONNECT.writer_dir.flush();
                    } else {
                        if (send > 100) {
                            CONNECT.writer_dir.println("right");
                            CONNECT.writer_dir.flush();
                        } else {
                            if (send < -100) {
                                CONNECT.writer_dir.println("left");
                                CONNECT.writer_dir.flush();
                            }
                        }
                    }
                }
                if (MODE == "f") {
                    if (send < 100 && send > -100) {
                        CONNECT.writer_dir.println("middle");
                        CONNECT.writer_dir.flush();
                    } else {
                        if (send > 100) {
                            CONNECT.writer_dir.println("right");
                            CONNECT.writer_dir.flush();
                        } else {
                            if (send < -100) {
                                CONNECT.writer_dir.println("left");
                                CONNECT.writer_dir.flush();
                            }
                        }
                    }
                }
                if (MODE == "uf") {
                    if (send < 100 && send > -100) {
                        CONNECT.writer_dir.println("middle");
                        CONNECT.writer_dir.flush();
                    } else {
                        if (send > 100) {
                            CONNECT.writer_dir.println("right");
                            CONNECT.writer_dir.flush();
                        } else {
                            if (send < -100) {
                                CONNECT.writer_dir.println("left");
                                CONNECT.writer_dir.flush();
                            }
                        }
                    }
                }
                //Lenken


                //Motor
                if (MODE == "s" || MODE == null) {

                    if (send_eng < 75 && send_eng > -75) {
                        CONNECT.writer_eng.println("0");
                        CONNECT.writer_eng.flush();
                    } else {
                        if (send_eng < -75) {
                            CONNECT.writer_eng.println("B");
                            CONNECT.writer_eng.println("150");
                            CONNECT.writer_eng.flush();
                        } else if (send_eng > 75) {
                            CONNECT.writer_eng.println("F");
                            CONNECT.writer_eng.println("150");
                            CONNECT.writer_eng.flush();

                        }
                    }
                } else if (MODE == "f") {

                    if (send_eng < 75 && send_eng > -75) {
                        CONNECT.writer_eng.println("0");
                        CONNECT.writer_eng.flush();
                    } else {
                        if (send_eng < -75) {
                            CONNECT.writer_eng.println("B");
                            CONNECT.writer_eng.println("150");
                            CONNECT.writer_eng.flush();
                        } else if (send_eng > 75) {
                            CONNECT.writer_eng.println("F");
                            CONNECT.writer_eng.println("180");
                            CONNECT.writer_eng.flush();

                        }
                    }

                } else if (MODE == "uf") {

                    if (send_eng < 75 && send_eng > -75) {
                        CONNECT.writer_eng.println("0");
                        CONNECT.writer_eng.flush();
                    } else {
                        if (send_eng < -75) {
                            CONNECT.writer_eng.println("B");
                            CONNECT.writer_eng.println("0");
                            CONNECT.writer_eng.flush();
                        } else if (send_eng > 75) {
                            CONNECT.writer_eng.println("F");
                            CONNECT.writer_eng.println("199");
                            CONNECT.writer_eng.flush();

                        }
                    }
                }

                //Motor
            }
        } else {
            if (STATUS == true) {
                CONNECT.writer_eng.println("0");
                CONNECT.writer_eng.flush();
                CONNECT.writer_dir.println("middle");
                CONNECT.writer_dir.flush();
            }
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }

    @Override
    protected void onResume() {
        super.onResume();
        // register this class as a listener for the orientation and
        // accelerometer sensors
        sensorManager.registerListener(this,
                sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_NORMAL);
    }

    public class SEND_IP implements Runnable {


        @Override
        public void run() {
            while ((true)) {
                if (STATUS == true) {
                    WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
                    String ip = Formatter.formatIpAddress(wm.getConnectionInfo().getIpAddress());
                    CONNECT.writer_con.println(ip);
                    CONNECT.writer_con.flush();
                }
            }
        }

    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap=googleMap;
    }
/*
    public class CAR_MAP_OBJECT implements Runnable{

        @Override
        public void run(){
            try {Thread.sleep(10000);} catch (InterruptedException e) {e.printStackTrace();}
            while (true){
                try {Thread.sleep(1000);} catch (InterruptedException e) {}
                MainActivity.mMap.clear();

                MarkerOptions car = new MarkerOptions();
                LatLng car_O = new LatLng(49.466786666666674,10.967413333333311);

                car.position(car_O);

                car.title("CAR");

                MainActivity.mMap.addMarker(car);

                MainActivity.mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(car_O, 16));
                //49.466786666666664
                //Longitude 10.967413333333331
            }
        }

    }*/

  /*  public class USER_MAP_OBJECT implements Runnable{

        @Override
        public void run(){
            try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}
            while (true){
                try {Thread.sleep(1000);} catch (InterruptedException e) {}
                if(gps.canGetLocation()){
                    double latitude = gps.getLatitude();
                    double longitude = gps.getLongitude();
                    Log.v(TAG,"Your Location is - nLat: " + latitude + "nLong: " + longitude);
                    //Location location = gps.getLocation();

                    //mMap.clear();

                    //MarkerOptions user = new MarkerOptions();

                    //user.position(new LatLng(location.getLatitude(), location.getLongitude()));

                    //user.title("You");

                    //mMap.addMarker(user);

                    //mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                    //      new LatLng(location.getLatitude(), location.getLongitude()), 16));
                }else{
                    gps.showSettingsAlert();
                }
            }
        }

    }*/
}

Код Java просто MainActivity есть несколько других классов, но я думаю, что ошибка в MainActivity и вызвана Google Maps.

Спасибо pcpriyanka за редактирование: D

1 ответ

  1. Добавьте эти разрешения в манифест.XML

    <uses-permission android_name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android_name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    и вам хорошо идти..