устройство Android, показывающее «Мое приложение продолжает работать»

#java #android

#java #Android

Вопрос:

mainactivity.java

     package com.example.myapplication;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import androidx.appcompat.app.AppCompatActivity;
    public class MainActivity extends AppCompatActivity {
        private WebView mywebview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mywebview=(WebView)findViewById(R.id.webView);
        WebSettings webSettings=mywebview.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mywebview.loadUrl("file:///android_asset/myresource.html");
        mywebview.setWebViewClient(new WebViewClient());

    }
    @Override
    public void onBackPressed() {
        if (mywebview.canGoBack()) {
            mywebview.goBack();
        } else {
            super.onBackPressed();
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.menu_main,menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
 

Activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:ignore="ExtraText">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    <WebView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@ id/webView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"/>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>12/13 23:40:42: Launching 'app' on Physical Device.
 

Установка успешно завершена за 14 секунд 668 мс.
$ adb shell запускаю -n «com.example.myapplication/com.example.myapplication.SplashActivity» — android.intent.action.MAIN -c android.intent.category.ПУСКОВАЯ УСТАНОВКА
Подключено к процессу 25636 на устройстве «xiaomi-redmi_7a-2c5b9bbe0406».
Захват и отображение сообщений logcat из приложения. Это поведение можно отключить в разделе «Вывод Logcat» на странице настроек «Debugger».
Ввод / вывод: подключение к службе perf.
I / FeatureParser: не удается найти pine.xml в активах/device_features/ это может быть в /system/etc/device_features
E / Perf: не удается получить список файлов com.example.myapplication
E/Perf: GetFoldersize() : Exception_1 = java.lang.Исключение NullPointerException: попытка получить длину нулевого массива
Не удается получить список файлов com.example.myapplication
GetFoldersize() : Exception_1 = java.lang.Исключение NullPointerException: попытка получить длину нулевого массива
D / AndroidRuntime: завершение работы виртуальной машины
E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
Процесс: com.example.myapplication, PID: 25636
java.lang.RuntimeException: не удается запустить activity ComponentInfo{com.example.myapplication/com.example.myapplication .SplashActivity}: android.content.res.Resources$NotFoundException: Drawable com.example.myapplication:drawable / background с идентификатором ресурса #0x7f07005f
в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3304)
в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3443)
в android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
в android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
в android.app.ActivityThread $ H.handleMessage(ActivityThread.java: 2040)
в android.os.Handler.DispatchMessage(Handler.java:107)
в android.os.Looper.loop(Looper.java: 221)
в android.app.ActivityThread.main(ActivityThread.java: 7520)
в java.lang.reflect.Метод.invoke(собственный метод)
в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
в com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 950)
Вызвано: android.content.res.Resources $ NotFoundException: Drawable com.example.myapplication:drawable / background с идентификатором ресурса # 0x7f07005f
Вызвано: android.content.res.Resources $ NotFoundException: File res/drawable/background.xml из идентификатора ресурса для рисования #0x7f07005f
в android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:898)
на android.content.res.ResourcesImpl.originalLoadDrawable(ResourcesImpl.java: 679)
на android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java: 586)
в android.content.res.MiuiResourcesImpl.loadDrawable(MiuiResourcesImpl.java:307)
в android.content.res.Resources.getDrawableForDensity(Ресурсы.java: 920)
в android.content.res.Resources.getDrawable(Resources.java: 859)
в android.content.Context.getDrawable(Context.java: 696)
в androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:454)
в androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:144)
в androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java: 411)
в androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
в androidx.appcompat.app.AppCompatDelegateImpl.attachToWindow(AppCompatDelegateImpl.java:647)
в androidx.appcompat.app.AppCompatDelegateImpl.ensureWindow(AppCompatDelegateImpl.java:623)
в androidx.appcompat.app.AppCompatDelegateImpl.onCreate(AppCompatDelegateImpl.java: 350)
в androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:105)
в com.example.myapplication.SplashActivity.onCreate(SplashActivity.java: 11)
в android.app.Activity.performCreate(Activity.java:7893)
в android.app.Activity.performCreate(Activity.java:7880)
в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3279)
в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3443)
в android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
в android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
в android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
в android.app.ActivityThread $ H.handleMessage(ActivityThread.java: 2040)
в android.os.Handler.DispatchMessage(Handler.java:107)
в android.os.Looper.loop(Looper.java: 221)
в android.app.ActivityThread.main(ActivityThread.java: 7520)
в java.lang.reflect.Метод.invoke(собственный метод)
в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
в com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 950)
E / AndroidRuntime: вызвано: org.xmlpull.v1.XmlPullParserException: строка двоичного XML-файла # 4: для тега требуется атрибут ‘drawable’ или дочерний тег, определяющий drawable
в android.graphics.drawable.LayerDrawable.inflateLayers(LayerDrawable.java: 278)
в android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:199)
на android.graphics.drawable.DrawableInflater.inflateFromXmlForDensity(DrawableInflater.java:144)
на android.graphics.drawable.Drawable.createFromXmlInnerForDensity(Drawable.java: 1402)
на android.graphics.drawable.Drawable.createFromXmlForDensity(Drawable.java: 1361)
в android.content.res.ResourcesImpl.createFromXmlForDensity(ResourcesImpl.java: 1615)
в android.content.res.ResourcesImpl.loadXmlDrawable(ResourcesImpl.java: 963)
в android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java: 882)
… еще 30
Ввод / вывод: отправка сигнала. PID: 25636 SIG: 9

 **splashactivity.java**
    package com.example.myapplication;
    
    import android.content.Intent;
    import android.os.Bundle;
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    public class SplashActivity extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
            finish();
        }
    
    }
 

Ответ №1:

Я думаю, что у вас проблемы с вашей SplashActivity, а не с основной деятельностью. ищите чертежи, которые вы используете для своего XML-файла splash. вы должны правильно импортировать их в свою папку res-> drawable вашего проекта, если они являются векторами или png. Просто попробуйте импортировать их в нужное место.Если это не решит проблему, пожалуйста, поместите свой XML-файл splash, чтобы я мог вам помочь.

Обновить:

Посмотрите на свой splashactivity, у него нет никакого представления содержимого, вы должны создать макет для своей активности splash. Перейдите в папку «Пакеты проекта», разверните папку «res», затем щелкните правой кнопкой мыши на layout и создайте ресурс layout, затем назовите его так, как вы предпочитаете, например, splash со строчными буквами, затем в вашей активности splash в разделе oncreate метод add:

setContentView(R.layout.splash.xml );

Поместите эту строку сразу после super.onCreate(savedinstancestate)

Комментарии:

1. я добавил файл заставки

2. я имел в виду, что ваше splash.xml файл и ресурсы, которые вы для него использовали.

3. я не использовал splash.xml файл не могли бы вы, пожалуйста, написать это для меня

4. Каждый раз, когда вы хотите создать действие, просто щелкните правой кнопкой мыши на своем пакете Java и вместо создания класса просто выберите действие, а затем создайте пустое действие, оно автоматически сгенерирует для вас XML-файл