通过最后一个网址访问后,我的载入时间应用会不断崩溃

我正在尝试创建一个应用程序,该应用程序接收URL的文本文件并循环播放,直到用户希望它停止为止。在这种情况下,应用程序应将所有加载时间记录到数据库中,然后用户应将其导出。

当前,当应用程序到达最终URL时,它将停止运行。我做了一些测试,我意识到只要启用JavaScript并清除缓存,问题就会发生。但是我无法摆脱JavaScript或清除缓存,因为它损害了数字。

似乎问题发生在 browser.java第205行,即:

mTimer.schedule(mRunOnFinished,mDelay);

我得到的错误:

   "W/cr_ChildProcLH: Create a new ChildConnectionAllocator with package name = com.android.chrome,sandboxed = true
    2019-11-08 11:22:32.214 8615-8615/com.example.time_app I/cr_BrowserStartup: Initializing chromium process,singleProcess=false
    2019-11-08 11:22:32.220 8615-8615/com.example.time_app W/ResourceType: Failure getting entry for 0x7f1204b0 (t=17 e=1200) (error -2147483647)
    2019-11-08 11:22:32.820 8615-8615/com.example.time_app E/chromium: [ERROR:gl_surface_egl.cc(335)] eglChooseConfig failed with error EGL_SUCCESS
    2019-11-08 11:22:32.852 8615-8615/com.example.time_app D/EGL_emulation: eglCreateContext: 0xe0205ea0: maj 2 min 0 rcv 2
    2019-11-08 11:22:32.855 8615-8615/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe0205ea0: ver 2 0 (tinfo 0xce273280)
    2019-11-08 11:22:32.888 8615-8643/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe7dba3a0: ver 2 0 (tinfo 0xdd5b34a0)
    2019-11-08 11:22:33.115 8615-9257/com.example.time_app W/cr_CrashFileManager: /data/user/0/com.example.time_app/cache/WebView/Crash Reports does not exist or is not a directory
    2019-11-08 11:22:33.144 8615-8620/com.example.time_app I/zygote: Do full code cache collection,code=250KB,data=179KB
    2019-11-08 11:22:33.145 8615-8620/com.example.time_app I/zygote: After code cache collection,code=247KB,data=136KB
    2019-11-08 11:22:34.398 8615-8620/com.example.time_app I/zygote: Do partial code cache collection,code=249KB,data=138KB
    2019-11-08 11:22:34.398 8615-8620/com.example.time_app I/zygote: After code cache collection,data=138KB
    2019-11-08 11:22:34.398 8615-8620/com.example.time_app I/zygote: Increasing code cache capacity to 1024KB
    2019-11-08 11:22:40.383 8615-8615/com.example.time_app E/Browser: DisplayNext::run :  Start loading next page : http://www.Google.com
    2019-11-08 11:22:40.397 8615-9206/com.example.time_app W/cr_media: Requires BLUETOOTH permission
    2019-11-08 11:22:40.401 8615-9196/com.example.time_app D/NetworkSecurityConfig: No Network Security Config specified,using platform default
    2019-11-08 11:22:40.478 8615-9448/com.example.time_app I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
    2019-11-08 11:22:40.484 8615-9448/com.example.time_app W/cr_MediaCodecUtil: HW encoder for video/avc is not available on this device.
    2019-11-08 11:22:40.490 8615-9448/com.example.time_app E/chromium: [ERROR:gl_surface_egl.cc(335)] eglChooseConfig failed with error EGL_SUCCESS
    2019-11-08 11:22:40.516 8615-9448/com.example.time_app D/EGL_emulation: eglCreateContext: 0xcc055060: maj 2 min 0 rcv 2
    2019-11-08 11:22:40.518 8615-9448/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xcc055060: ver 2 0 (tinfo 0xcc0756f0)
    2019-11-08 11:22:41.060 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:41.487 8615-8643/com.example.time_app I/chatty: uid=10079(com.example.time_app) RenderThread identical 6 lines
    2019-11-08 11:22:41.487 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:41.752 8615-8643/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe7dba3a0: ver 2 0 (tinfo 0xdd5b34a0)
    2019-11-08 11:22:41.833 8615-8643/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe7dba3a0: ver 2 0 (tinfo 0xdd5b34a0)
    2019-11-08 11:22:41.913 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:41.913 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:41.958 8615-8643/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe7dba3a0: ver 2 0 (tinfo 0xdd5b34a0)
    2019-11-08 11:22:42.011 8615-8643/com.example.time_app D/EGL_emulation: eglMakeCurrent: 0xe7dba3a0: ver 2 0 (tinfo 0xdd5b34a0)
    2019-11-08 11:22:42.068 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:42.068 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:42.100 8615-8615/com.example.time_app D/AndroidRuntime: Shutting down VM
    2019-11-08 11:22:42.100 8615-8615/com.example.time_app E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.time_app,PID: 8615
        java.lang.IllegalStateException: Task already scheduled or cancelled
            at java.util.Timer.sched(Timer.java:401)
            at java.util.Timer.schedule(Timer.java:193)
            at com.example.time_app.Browser$WaitPageLoadedClient.onPageFinished(Browser.java:205)
            at xl.c(PG:228)
            at afG.handleMessage(PG:72)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loop(Looper.java:164)
            at android.app.activityThread.main(activityThread.java:6494)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    2019-11-08 11:22:42.170 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5
    2019-11-08 11:22:42.170 8615-8643/com.example.time_app E/eglCodecCommon: glUtilsParamSize: unknow param 0x000085b5"

Browser.java

package com.example.time_app;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatactivity;


import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.util.Pair;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;


import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;


import static com.example.time_app.File_menu.names;


public class Browser extends AppCompatactivity {
    private static class SomeComplicatedObject {
        public final String mPath;
        public final Integer mDuration;
        public int j;


        public SomeComplicatedObject(final String path,final int duration) {
            mPath = path;
            mDuration = duration;
        }

        String getPath() {
            return mPath;
        }

        Integer getDureation() {
            return mDuration;
        }
    }

    public static final List<SomeComplicatedObject> complicatedList = new ArrayList<>();

    static {
        for (int i=0;i<names.size();i++)
        {
            complicatedList.add(new SomeComplicatedObject(names.get(i),8000));

        }


    }



    public static final String TAG = "Browser";
    public final ArrayList<Pair<String,Integer>> mSitesToDisplay = new ArrayList<>();
    public final Timer mTimer = new Timer("LoadNext");
    public final Handler mHandler = new Handler();
    public WebView mWebView = null;
    public int mIndex = -1;
    public final Context context = this;

    public void fillSitesToDisplay(List<SomeComplicatedObject> list) {
        mIndex = -1;
        mSitesToDisplay.clear();
        for (SomeComplicatedObject item : list) {
            mSitesToDisplay.add(new Pair<>(item.getPath(),item.getDureation()));

        }



    }

    public Pair<String,Integer> getNext() {
        mIndex = (mIndex + 1) % mSitesToDisplay.size();
        return mSitesToDisplay.get(mIndex);

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_browser);
        fillSitesToDisplay(complicatedList);
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_flaG_HIDE_NAVIGATION | View.SYSTEM_UI_flaG_IMMERSIVE_STICKY | View.SYSTEM_UI_flaG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);

        mWebView = (WebView) findViewById(R.id.webview);
        load_javascript();


        //initial start delayed by 1 sec
        mTimer.schedule(createTimerTask(),TimeUnit.SECONDS.toMillis(8));





    }

    public Runnable mDisplayNextPage = new Runnable() {
        @Override
        public void run() {
            final Pair<String,Integer> pathTimePair = getNext();
            Log.e(TAG,"DisplayNext::run :  Start loading next page : " + pathTimePair.first);
            mWebView.setWebViewClient(new WaitPageLoadedClient(mTimer,createTimerTask(),pathTimePair.second));
            mWebView.loadUrl(pathTimePair.first);



        }
    };

    public TimerTask createTimerTask() {


        return new TimerTriggered(mHandler,mDisplayNextPage);
    }

    //simple utility class for notifying timer triggered event
    //on UI thread.
    public  static class TimerTriggered extends TimerTask {

        Runnable mOnTriggered;
        Handler mHandler;

        protected TimerTriggered(Handler handler,Runnable onTriggered) {
            super();
            mHandler = handler;
            mOnTriggered = onTriggered;

        }

        @Override
        public void run() {
            //Timer runs int it's own thread so we need to
            //pass execution to MainThread for accessing WebView.
            mHandler.post(mOnTriggered);
        }
    }

    public class WaitPageLoadedClient extends WebViewClient {
        public final TimerTask mRunOnFinished;
        public final Timer mTimer;
        public final Integer mDelay;
        //creating the webview variable
        WebView wb;
        //the end variable takes in the finshed load time(it is a long function because of the number length
        long end;
        //this is just a varibale to be used for the alert code

        //this is the total number converted as a string because the alert function does not take in float
        String numberAsString;
        //the start variable takes in the start load time(it is a long function because of the number length
        long start;
        //The total variable takes in the substraction of the end and start and is a float variale do to its shorter length
        float total;

        Date end_Time;
        Date start_Time;


        WebView mWebView=(WebView) findViewById(R.id.webview);



        public WaitPageLoadedClient(Timer timer,TimerTask toRunOnFinished,Integer delay) {

            mRunOnFinished = toRunOnFinished;
            mTimer = timer;
            mDelay = delay;


        }

        @Override
        //this function records the load time
        public void onPageStarted(WebView view,String url,Bitmap favicon) {
            start = System.currentTimeMillis();
            start_Time = Calendar.getInstance().getTime();
        }


        @Override
        public void onPageFinished(WebView view,String url) {


           //  Log.e(TAG,"onPageFinished: Schedule timer for " + mDelay);
          mTimer.schedule(mRunOnFinished,mDelay);



            end = System.currentTimeMillis();
            total = end - start;
            end_Time = Calendar.getInstance().getTime();
            // Total is the difference in milliseconds.
            // Dividing by 1000,you convert it to seconds
            numberAsString = String.valueOf(total / 1000);
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

            // set title
            alertDialogBuilder.setTitle("Your Load Time");

            // set dialog message
            alertDialogBuilder
                    .setMessage("Elapsed Time:" + numberAsString + "\n" + "Start Time:" + start_Time + "\n" + "EndTime:" + end_Time + "\n")
                    .setCancelable(false)
                    .setNegativeButton("OK",new DialogInterface.OnClicklistener() {
                        public void onClick(DialogInterface dialog,int id) {
                            // if this button is clicked,just close
                            // the dialog box and do nothing
                            dialog.cancel();
                        }
                    });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();


        }





    }
    public void Go_back()
    {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

        // set title
        alertDialogBuilder.setTitle("Done");

        // set dialog message
        alertDialogBuilder
                .setMessage("Load Test Done")
                .setCancelable(false)
                .setNegativeButton("OK",new DialogInterface.OnClicklistener() {
                    public void onClick(DialogInterface dialog,int id) {
                        // if this button is clicked,just close
                        // the dialog box and do nothing
                        dialog.cancel();
                    }
                });

        // create alert dialog
        AlertDialog alertDialog = alertDialogBuilder.create();

        // show it
        alertDialog.show();


        Intent intent=new Intent(this,Mainactivity.class);
        startactivity(intent);



    }

    public void load_javascript()
    {
        //declaring and setting the web setting variable
        WebSettings webSettings = mWebView.getSettings();
        //setting up the javascript to allow thw browser to use javascript
        webSettings.setJavaScriptEnabled(true);
        mWebView.getSettings().setappCacheEnabled(false);
        mWebView.clearCache(true);
    }



}

activity_browser.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".Browser">
    tools:context=".Browser_class">
    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout >

file_load.java

package com.example.time_app;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatactivity;
import androidx.core.app.activityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.Contenturis;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;
import android.util.Log;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;

import static com.example.time_app.File_menu.names;


public class file_load extends AppCompatactivity {


    private int request_code =1,FILE_SELECT_CODE =101;
    private TextView textView;
    private String TAG ="mainactivty";
    public String  actualfilepath="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_file_load);
        // sdcard/myfolder/mytextfile.txt
        //URI  sdcard/media/123242
        textView =(TextView) findViewById(R.id.text2);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
            // start runtime permission
            Boolean hasPermission =( ContextCompat.checkSelfPermission(this,Manifest.permission.READ_EXTERNAL_STORAGE)
                    == PackageManager.PERMISSION_GRANTED);
            if (!hasPermission){
                Log.e(TAG,"get permision   ");
                activityCompat.requestPermissions( this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},request_code);
            }else {
                Log.e(TAG,"get permision-- already granted ");
                showFileChooser();
            }
        }else {
            //readfile();
            showFileChooser();

        }

    }
    @Override
    public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode,permissions,grantResults);
        switch (requestCode){
            case 1:{
                if (grantResults.length>0 && grantResults[0]== PackageManager.PERMISSION_GRANTED){
                    //readfile();
                    showFileChooser();
                }else {
                    // show a msg to user
                }
            }
        }

    }
    private void showFileChooser() {
        Intent intent = new Intent(Intent.actION_GET_CONTENT);
        intent.setType("*/*");
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        try {
            startactivityForResult(  Intent.createChooser(intent,"Select a File to Upload"),FILE_SELECT_CODE);

        } catch (Exception e) {
            Log.e(TAG," choose file error "+e.toString());
        }
    }
    @Override
    protected void onactivityResult(int requestCode,int resultCode,Intent data) {
        super.onactivityResult(requestCode,resultCode,data);
//        Log.e(TAG," result is "+ data + "  uri  "+ data.getData()+ " auth "+ data.getData().getauthority()+ " path "+ data.getData().getPath());
        String fullerror ="";
        if (requestCode == FILE_SELECT_CODE){
            if (resultCode == RESULT_OK){
                try {
                    Uri imageuri = data.getData();
                    InputStream stream = null;
                    String tempID= "",id ="";
                    Uri uri = data.getData();
                    Log.e(TAG,"file auth is "+uri.getauthority());
                    fullerror = fullerror +"file auth is "+uri.getauthority();
                    if (imageuri.getauthority().equals("media")){
                        tempID =   imageuri.toString();
                        tempID = tempID.substring(tempID.lastIndexOf("/")+1);
                        id = tempID;
                        Uri contenturi = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
                        String selector = MediaStore.Images.Media._ID+"=?";
                        actualfilepath = getcolunmData( contenturi,selector,new String[]{id}  );
                    }else if (imageuri.getauthority().equals("com.android.providers.media.documents")){
                        tempID = DocumentsContract.getDocumentId(imageuri);
                        String[] split = tempID.split(":");
                        String type = split[0];
                        id = split[1];
                        Uri contenturi = null;
                        if (type.equals("image")){
                            contenturi = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
                        }else if (type.equals("video")){
                            contenturi = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
                        }else if (type.equals("audio")){
                            contenturi = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                        }
                        String selector = "_id=?";
                        actualfilepath = getcolunmData( contenturi,new String[]{id}  );
                    } else if (imageuri.getauthority().equals("com.android.providers.downloads.documents")){
                        tempID =   imageuri.toString();
                        tempID = tempID.substring(tempID.lastIndexOf("/")+1);
                        id = tempID;
                        Uri contenturi = Contenturis.withAppendedId(Uri.parse("content://downloads/public_downloads"),Long.valueOf(id));
                        // String selector = MediaStore.Images.Media._ID+"=?";
                        actualfilepath = getcolunmData( contenturi,null,null  );
                    }else if (imageuri.getauthority().equals("com.android.externalstorage.documents")){
                        tempID = DocumentsContract.getDocumentId(imageuri);
                        String[] split = tempID.split(":");
                        String type = split[0];
                        id = split[1];
                        Uri contenturi = null;
                        if (type.equals("primary")){
                            actualfilepath=  Environment.getExternalStorageDirectory()+"/"+id;
                        }
                    }
                    File myFile = new File(actualfilepath);
                    // messagedialog dialog = new messagedialog(Home.this," file details --"+actualfilepath+"\n---"+ uri.getPath() );
                    // dialog.displayMessageShow();
                    String temppath =  uri.getPath();
                    if (temppath.contains("//")){
                        temppath = temppath.substring(temppath.indexOf("//")+1);
                    }
                    Log.e(TAG," temppath is "+ temppath);
                    fullerror = fullerror +"\n"+" file details -  "+actualfilepath+"\n --"+ uri.getPath()+"\n--"+temppath;
                    if ( actualfilepath.equals("") || actualfilepath.equals(" ")) {
                        myFile = new File(temppath);
                    }else {
                        myFile = new File(actualfilepath);
                    }
                    //File file = new File(actualfilepath);
                    //Log.e(TAG," actual file path is "+ actualfilepath + "  name ---"+ file.getName());
//                    File myFile = new File(actualfilepath);
                    Log.e(TAG," myfile is "+ myFile.getabsolutePath());
                    readfile(myFile);
                    // lyf path  - /storage/emulated/0/kolektap/04-06-2018_Admin_1528088466207_file.xls
                } catch (Exception e) {
                    Log.e(TAG," read errro "+ e.toString());
                }
                //------------  /document/primary:kolektap/30-05-2018_Admin_1527671367030_file.xls
            }
        }
    }
    public String getcolunmData( Uri uri,String selection,String[] selectarg){
        String filepath ="";
        Cursor cursor = null;
        String colunm = "_data";
        String[] projection = {colunm};
        cursor =  getcontentResolver().query( uri,projection,selection,selectarg,null);
        if (cursor!= null){
            cursor.moveToFirst();
            Log.e(TAG," file path is "+  cursor.getString(cursor.getcolumnIndex(colunm)));
            filepath = cursor.getString(cursor.getcolumnIndex(colunm));
        }
        if (cursor!= null)
            cursor.close();
        return  filepath;
    }
    public void readfile(File file){
        // File file = new File(Environment.getExternalStorageDirectory(),"bla.txt");
        StringBuilder builder = new StringBuilder();
        Log.e("main","read start");
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;
            while ((line = br.readLine())!=null){
                builder.append(line);
                builder.append("\n");
                names.add(line);

            }
            br.close();
        }catch (Exception e){
            Log.e("main"," error is "+e.toString());
        }
        Log.e("main"," read text is "+ builder.toString());
        textView.setText(builder.toString());
        openactivityDecision();




    }
    public void openactivityDecision()
    {
        Intent intent=new Intent(this,File_menu.class);
        startactivity(intent);
    }

}

activity_file_load.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <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=".file_load">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text2"
            android:textColor="@color/coloraccent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.time_app">

    <uses-permission android:name="android.permission.accESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsrtl="true"
        android:theme="@style/Apptheme">
        <activity android:name=".File_menu"></activity>
        <activity android:name=".Browser" />
        <activity android:name=".file_load" />
        <activity android:name=".Manual_menu" />
        <activity android:name=".Mainactivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
xiaobai55121006 回答:通过最后一个网址访问后,我的载入时间应用会不断崩溃

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3135933.html

大家都在问