当前位置: 首页 > 知识库问答 >
问题:

错误-未注册检测!必须在注册检测下运行

裴俊豪
2023-03-14

A) 为什么当我尝试运行应用程序时会出现此错误?

我的崩溃日志错误

Java语言lang.RuntimeException:无法启动活动java。lang.IllegalStateException:未注册任何检测!必须在注册检测下运行。在android上。应用程序。ActivityThread。在android上执行LaunchActivity(ActivityThread.java:2947)。应用程序。ActivityThread。android上的handleLaunchActivity(ActivityThread.java:3008)。应用程序。ActivityThread-android上的wrap14(ActivityThread.java)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:1650)。操作系统。处理程序。android上的dispatchMessage(Handler.java:102)。操作系统。活套。android上的loop(Looper.java:154)。应用程序。ActivityThread。java上的main(ActivityThread.java:6688)。lang.reflect。方法在com上调用(本机方法)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(ZygoteInit.java:1468)。Android内部的操作系统。合子岩。main(ZygoteInit.java:1358)由:java引起。lang.IllegalStateException:未注册任何检测!必须在注册检测下运行。在android上。支持测验InstrumentationRegistry。android上的getInstrumentation(InstrumentationRegistry.java:45)。支持测验InstrumentationRegistry。com上的getContext(InstrumentationRegistry.java:75)。瓦奇比。挑战者电视台。GuidaTvActivity$GetData。android上的onPreExecute(main.java:76)。操作系统。异步任务。android上的executeOnExecutor(AsyncTask.java:613)。操作系统。异步任务。在com上执行(AsyncTask.java:560)。瓦奇比。挑战者电视台。GuidaTvActivity。android上的onCreate(main.java:68)。应用程序。活动在android上执行创建(Activity.java:6912)。应用程序。仪器仪表。android上的callActivityOnCreate(Instrumentation.java:1126)。应用程序。ActivityThread。在android上执行LaunchActivity(ActivityThread.java:2900)。应用程序。ActivityThread。handleLaunchActivity(ActivityThread.java:3008)

无法启动活动ComponentInfojava。lang.IllegalStateException:未注册任何检测!必须在注册仪器下运行。

是什么造成的?我还在学习,如果你能解释更多,我将不胜感激。

这是我的代码

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.support.design.widget.TabLayout;
import android.widget.ListView;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;




import static android.support.test.InstrumentationRegistry.getContext;
import static com.google.android.gms.internal.zzahn.runOnUiThread;



/**
 * Created by GB on 28/03/18.
 */

public class Main extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;
    private ProgressDialog pDialog;
    //url per il recupero del JSON
    private static String url = "there is an url trust me. But i need to hide";

    private ListView TodayMenu;

    ArrayList<HashMap<String, String>> DATA;

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

        Toolbar toolbargtv = (Toolbar) findViewById(R.id.toolbargtv);
        setSupportActionBar(toolbargtv);

        //getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        ViewPager viewer = (ViewPager) findViewById(R.id.viewer);
        setupViewPager(viewer);

        TabLayout tabsgtv = (TabLayout) findViewById(R.id.tabsgtv);
        tabsgtv.setupWithViewPager(viewer);

        DATA = new ArrayList<>();

        TodayMenu = (ListView) findViewById(R.id.todayMenu);

        new GetData().execute();
    }

    private class GetData extends AsyncTask<Void,Void,Void>{
        @Override
        protected void onPreExecute(){
            super.onPreExecute();
            //Mostro avviso
            pDialog = new ProgressDialog(getContext());
            pDialog.setMessage("Attendi..");
            pDialog.setCancelable(false);
            pDialog.show();
        }

        @Override
        protected Void doInBackground(Void... arg0){
            HttpHandler sh = new HttpHandler();
            //faccio una richiesta al server e attendo risposta
            String jsonStr = sh.makeServiceCall(url); 
            Log.e("RAW-JSON: ","Retrieve RAW-Json is "+jsonStr);

            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);
                    String DATESTRING = jsonObj.getString("date");

                    JSONObject DATE = new JSONObject(DATESTRING); //Log.d("STAMPA","DATESTRING"+DATESTRING);

                    //Log.d("PER FAVORE","IERI ERA "+Ieri);
                    //ESTRAGGO E INSERISCO DOVE MI SERVE
                    String Yesterday = DATE.getString("ieri");
                    String Today = DATE.getString("oggi");
                    String Tomorrow = DATE.getString("domani");
                } catch (JSONException e) {
                    runOnUiThread(new Runnable(){
                        @Override
                        public void run(){
                            Toast.makeText(getContext(),"Errore nel recupero dati",Toast.LENGTH_LONG).show();
                        }
                    });
                    e.printStackTrace();
                }
            }

            return null;
        }
        @Override
        protected void onPostExecute(Void result){
            super.onPostExecute(result);
            //tolgo il caricamento di pDialog
            if (pDialog.isShowing())
                pDialog.dismiss();
        }
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new YesterdayFragment(),"" );  //i can set from here the name of tabs but how is the name from by Json?
        adapter.addFragment(new TodayFragment(), "");
        adapter.addFragment(new TomorrowFragment(), "");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
}

共有2个答案

郎言
2023-03-14

删除这一行导入静态android。支持测验InstrumentationRegistry。getContext

然后,您需要传递活动的上下文(使用this或任何类似的内容)。

岳晟
2023-03-14

您正试图在pDialog=newprogressdialog(getContext())中使用上下文 但是,您使用的不是像this(活动上下文)或getApplicationContext()这样的上下文,而是InstrumentationRegistry上下文,在您的情况下,它没有用处,因为这不是测试,请参阅导入静态android。支持测验InstrumentationRegistry。getContext 只需修复上下文即可使用正确的上下文。

 类似资料:
  • 我一直在尝试使用Espresso执行一个简单的UI测试,但所有测试都失败了,但有一个相同的例外: IllegalStateException:没有注册检测!必须在注册检测下运行 这里是使用eSpresso的初学者指南。我已经发现了类似的问题,但与我最相关的问题在这里没有得到回答--我想这是因为他们没有描绘出整个画面,所以这里是我的代码。我将只显示一个测试,因为它们都失败,错误完全相同: 这里是两个

  • 在64位计算机上运行Visual Studio 2012应用程序时,会显示以下错误消息: 由于以下错误,检索CLSID为{F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B}的组件的COM类工厂失败:80040154类未注册(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG)) 我正在visualstudio中使用Inventor packa

  • 本文向大家介绍Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码(已测),包括了Xshell5 注册码 ,Xftp5 注册码,Xmanager5注册码(已测)的使用技巧和注意事项,需要的朋友参考一下 Xmanager5 是全新标准的跨平台集成解决方案。它是一个一站式解决方案,这个软件包含有以下一些产品:Xshell5,Xftp5和Xlpd5。 Xshell Xshell是一个用

  • 我使用的是Android GCM推送服务,它在一段时间内运行良好,但如果我让我的应用程序闲置几分钟,或者当我在代码修改后重新运行它时,我没有收到任何消息,GCM服务器给我这个错误:“NotRegistered”我做了一些重新搜索,我发现了这个问题,但我还不能在那里发表评论(低声誉:(而且帖子太旧了) 在浏览过程中,我发现Google服务器有时会自动刷新注册id,所以我需要知道的是GCM服务器何时对

  • 有一个非常有趣的错误,我不知道如何解决。在我注册为新用户并单击submit按钮后,我得到以下错误块: 注意:在第153行的public_html/mystore/系统/库/mail.php中遇到非格式良好的数值注意:在第153行的public_html/mystore/系统/库/mail.php中遇到非格式良好的数值警告:无法修改标头信息-标头已发送由(输出开始于public_html/mysto

  • 问题内容: 是否可以检测PC何时注销。我需要开发一个应用程序,在PC注销之前,该应用程序将有关注销时间的文本文档写入文本。 问题答案: 对于.NET,请参见以下问题:[c#中是否有方法可以检测Windows关闭/注销并取消该操作(询问用户之后)http://codingdict.com/questions/159553)