android - 在Android Studio中进行测试时,应用不断停止

标签 android android-studio testing crash

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 audit(0.0:1191):avc:拒绝{读} 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 =文件许可= 0
2019-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 audit(0.0:1192):avc:拒绝{读取} 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 =文件许可= 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:无法实例化 Activity 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.java:68)
在android.app.ActivityThread $ 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)
在androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
在androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
在androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:191)
在com.example.listviewapp.MainActivity。(MainActivity.java:15)
在java.lang.Class.newInstance(本地方法)
在android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
在androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43)
在android.app.Instrumentation.newActivity(Instrumentation.java:1232)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.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(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)
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:OS事件:崩溃

当我在物理设备上测试应用程序时,这是日志记录

我尝试将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();
                    }
                }
        );
    }

}


我不知道为什么会在第二次尝试时发生这种情况,因为我第一次运行它时,效果就很好
但是当第二次尝试时,它一直停下来。

我认为以下文件也将帮助您尝试找出问题所在
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
}

最佳答案

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


您太早调用findViewById()了。

将调用移至onCreate()之后的setContentView(),其中 Activity 具有Window且布局层次结构已膨胀,因此您可以从中查找 View 。

关于android - 在Android Studio中进行测试时,应用不断停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58473786/

相关文章:

android - 无法解析常用打开文件 gradle.build

ruby-on-rails - 从父 Factory Girl 工厂访问子属性

java - 如何创建一个 JUnit 测试,该测试在满足特定条件之前一直运行?

android - 连接到 ADB 服务器的最大设备数

android - 恢复到 SurfaceView 显示黑屏

java - Android 计算器崩溃

java - 在 Retrofit Android 中获取响应

java - 从 Eclipse 迁移到 Android Studio 问题

android - 有什么方法可以将日志转储到 Android Studio 中,以便 Android Monitor 可以重复使用它们?

angularjs - Angular-Karma Controller 测试 : UI-Router persistent $stateParams dependency