Приложение постоянно останавливается при тестировании в Android Studio - PullRequest
0 голосов
/ 20 октября 2019

2019-10-20 19: 17: 13.479 5647-5683 / com.example.listviewapp I / ple.listviewap: ClassLoaderContext - это специальная общая библиотека. 2019-10-20 19: 17: 13.559 5647-5647 / com.example.listviewapp I / Perf: подключение к сервису perf. 2019-10-20 19: 17: 13.565 5647-5647 / com.example.listviewapp W / com.example.listviewapp: type = 1400 аудит (0.0: 1191): avc: запрещен {read} для comm = 45474C20496E6974 name = "u: object_r: vendor_default_prop: s0 "dev =" tmpfs "ino = 21652 scontext = u: r: untrusted_app: s0: c15, c257, c512, c768 tcontext = u: object_r: vendor_default_prop: s0 tclass = 201 09 файл-разрешения10-20 19: 17: 13.578 5647-5722 / com.example.listviewapp E / libc: доступ запрещен при поиске свойства "vendor.debug.egl.profiler" 2019-10-20 19: 17: 13.565 5647-5647 / com. example.listviewapp W / com.example.listviewapp: type = 1400 аудит (0.0: 1192): avc: отказано {чтение} для comm = 45474C20496E6974 name = "u: object_r: vendor_default_prop: s0" dev = "tmpfs" ino = 21652scontext = u: r: untrusted_app: s0: c15, c257, c512, c768 tcontext = u: object_r: vendor_default_prop: s0 tclass = файл разрешен = 0 2019-10-20 19: 17: 13.578 5647-5722 / com.example. listviewapp E / libc: доступ запрещен при поиске свойства "vendor.debug.prerotation.disable" 2019-10-20 19: 17: 13.606 5647-5647 / com.example.listviewapp D / AndroidRuntime: завершение работы VM

--------- beginning of crash

2019-10-20 19: 17: 13.608 5647-5647 / com.example.listviewapp E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.listviewapp, PID: 5647 java.lang.RuntimeException: Невозможно создать экземпляр действия. ComponentInfo {com.example.listviewapp / com.example.listviewapp.MainActivity}: java.lang.NullPointerException: попытка вызвать виртуальный метод 'android.view.Window $ Callback android. view.Window.getCallback () 'для пустой ссылки на объект на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2977) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3182) на android.app.servertransaction. LaunchActivityItem.execute (LaunchActivityItem.java:78) в android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.jread:68) и в$ H.handleMessage (ActivityThread.java:1916) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:193) на android.app.ActivityThread.main (ActivityThread.java:6898) на java.lang.reflect.Method. invoke (собственный метод) на com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:537) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858). Вызывается: java. lang.NullPointerException: попытка вызвать виртуальный метод 'android.view.Window $ Callback android.view.Window.getCallback ()' для нулевой ссылки на объект в androidx.appcompat.app.AppCompatDelegateImpl. (AppCompatDelegateImpl.java:249) и в.appcompat. com.example.listviewapp.MainActivity. (MainActivity.java:15) на java.lang.Class.newInstance (собственный метод) на android.app.AppComponentFactory.instantiateActidity (AppComponentFactory.java:69) в androidx.core.app.CoreComponentFactory.instantiateActivity (CoreComponentFactory.java:43) в android.app.Instrumentation.newActivity (Instrumentation.java:1232) в android.app.ActivityThread.perform.java: 2965) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3182) на android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:78)в android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:108) в android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:68) в android.app.ActivityThread $ H.handleMessage (ActivityThread16j)) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:193) на android.app.ActivityThread.main (ActivityThread.java:6898) на java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:537) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)2019-10-20 19: 17: 13.612 5647-5647 / com.example.listviewapp W / OPDiagnose: getService: OPDiagnoseService NULL 2019-10-20 19: 17: 13.619 5647-5727 / com.example.listviewapp D / OSTracker:Событие ОС: сбой

это logcat, когда я тестирую приложение на своем физическом устройстве

Я пытался изменить плагин Gradle с текущей версии на предыдущую, но не помогло

Вот тОн MainActivity.java

package com.example.listviewapp;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    ListView MyList = (ListView)findViewById(R.id.MyList);

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

    final String[] foods = {"Bacon", "Tuna", "Potato", "Meatball", "Candy", "Ham", "Shushi",
            "Apple", "Orange", "Pizza", "Hotdog", "Chole Bhatoore", "Chole Kulche", "Pasta"};


    //Adapter as a converter
        ListAdapter LAObject = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, foods);
        MyList.setAdapter(LAObject);


        //item listener
        MyList.setOnItemClickListener(
                new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        String store = String.valueOf(parent.getItemAtPosition(position));
                        Toast.makeText(MainActivity.this, store, Toast.LENGTH_SHORT).show();
                    }
                }
        );
    }

}

Интересно, почему это происходит со второй попытки, потому что при первом запуске он работал совершенно нормально, но при попытке во второй раз он останавливается.

Iдумаю, что следующие файлы также помогут вам разобраться в проблеме

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.1"
    defaultConfig {
        applicationId "com.example.listviewapp"
        minSdkVersion 19
        targetSdkVersion 29
        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.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

1 Ответ

0 голосов
/ 20 октября 2019
ListView MyList = (ListView)findViewById(R.id.MyList);

Вы звоните findViewById() слишком рано.

Переместите вызов на onCreate() после setContentView(), где у действия есть Window и макетиерархия раздута, так что вы можете найти из нее представления.

...