【问题标题】:My Android app stops at opening我的 Android 应用程序在打开时停止
【发布时间】:2018-06-20 04:57:59
【问题描述】:

我的 Android 应用在打开时停止,但 Android Studio 没有显示错误。有人可以帮忙吗?我正在尝试将我的网站转换为 android 应用程序。我对此有点陌生。

下面是我的MainActivity.java代码的显示

package com.example.deedat.webtry2;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    private WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView = (WebView)findViewById(R.id.webView);
        myWebView.loadUrl("http://www.motivationalscholar.com");
        myWebView.setWebViewClient(new WebViewClient());


    }

    @Override
    public void onBackPressed() {
        if(myWebView.canGoBack()){
            myWebView.goBack();
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

这是我的activity_main.xml 代码

    <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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="com.example.deedat.webtry2.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

我的 Logcat 显示:

01-10 19:26:15.552 17316-17316/? I/zygote:未启用 -Xcheck:jni(已启用) 01-10 19:26:15.562 17316-17316/? W/zygote:使用默认值的 X86 的意外 CPU 变体:x86 01-10 19:26:15.793 17316-17316/com.example.deedat.webtry2 I/InstantRun: 启动即时运行服务器: 是主进程 01-10 19:26:15.929 17316-17316/com.example.deedat.webtry2 D/AndroidRuntime: 关闭虚拟机 01-10 19:26:15.932 17316-17316/com.example.deedat.webtry2 E/AndroidRuntime: 致命异常: main 进程:com.example.deedat.webtry2,PID:17316 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.deedat.webtry2/com.example.deedat.webtry2.MainActivity}:android.view.InflateException:二进制 XML 文件行 #0:二进制 XML 文件行 #0 : 膨胀类使用权限时出错 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 在 android.app.ActivityThread.-wrap11(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 在 android.os.Handler.dispatchMessage(Handler.java:105) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 引起:android.view.InflateException:二进制 XML 文件行 #0:二进制 XML 文件行 #0:错误膨胀类使用权限 引起:android.view.InflateException:二进制 XML 文件第 0 行:错误膨胀类使用权限 引起:java.lang.ClassNotFoundException:在路径上找不到类“android.view.uses-permission”:DexPathList[[zip file“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g ==/base.apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_dependencies_apk.apk”,压缩文件“/data/app/com.example.deedat .webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_0_apk.apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_1_apk.apk”,压缩文件“/data /app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_2_apk.apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_3_apk。 apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_4_apk.apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em- M-SNtV1g==/split_lib_slice_5_apk.apk”,压缩文件“/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_6_apk.ap k", 压缩文件 "/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_7_apk.apk", 压缩文件 "/data/app/com.example.deedat.webtry2-qFM_P6edDm6em- M-SNtV1g==/split_lib_slice_8_apk.apk", zip 文件 "/data/app/com.example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com .example.deedat.webtry2-qFM_P6edDm6em-M-SNtV1g==/lib/x86, /system/lib, /system/vendor/lib]] 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:379) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:312) 在 android.view.LayoutInflater.createView(LayoutInflater.java:606) 在 android.view.LayoutInflater.onCreateView(LayoutInflater.java:703) 在 com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:68) 在 android.view.LayoutInflater.onCreateView(LayoutInflater.java:720) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:863) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.parseInclude(LayoutInflater.java:995) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:859) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:374) 在 android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 在 android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 01-10 19:26:15.933 17316-17316/com.example.deedat.webtry2 E/AndroidRuntime: 在 com.example.deedat.webtry2.MainActivity.onCreate(MainActivity.java:22) 在 android.app.Activity.performCreate(Activity.java:6975) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) 在 android.app.ActivityThread.-wrap11(未知来源:0) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) 在 android.os.Handler.dispatchMessage(Handler.java:105) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6541) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

我的 Android 应用在打开时停止,但 Android Studio 没有显示错误。有人可以帮忙吗?我正在尝试将我的网站转换为 android 应用程序。我对此有点陌生。

【问题讨论】:

  • 日志猫说...
  • 在调试代码的哪一部分抛出异常或导致应用程序崩溃时。你能分享这些信息吗?
  • 是的,Soumya,我已经添加了来自 Logcat 的消息。谢谢。
  • 谢谢,你解决了msangel的问题。

标签: java android xml android-layout


【解决方案1】:

您的 onCreate() 方法开始如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebSettings webSettings = myWebView.getSettings();
    ...
}

myWebView.getSettings() 几乎肯定会抛出NullPointerException,因为您从未初始化过myWebView。在setContentView()之后添加这一行:

myWebView = (WebView) findViewById(R.id.webView);

【讨论】:

  • 谢谢 Ben,我这样做了,但仍然遇到同样的问题。还有其他方法吗?
猜你喜欢
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多