简体   繁体   English

应用程序崩溃原因:java.lang.IllegalStateException:到目前为止没有成功匹配

[英]App is crashing Caused by: java.lang.IllegalStateException: No successful match so far

My app is running perfectly at debug mode but is crashing at release mode, so when i set debuggable to be true i realized that the error is from switch case and one method.我的应用程序在调试模式下完美运行,但在发布模式下崩溃,所以当我将 debuggable 设置为 true 时,我意识到错误来自 switch case 和一种方法。

Caused by: java.lang.IllegalStateException: No successful match so far原因:java.lang.IllegalStateException:到目前为止没有成功匹配
at com.example.speakingtranslator.MainActivity.p(:3334)在 com.example.speakingtranslator.MainActivity.p(:3334)
at com.example.speakingtranslator.MainActivity$e.onClick(:228)在 com.example.speakingtranslator.MainActivity$e.onClick(:228)
at android.view.View.performClick(View.java:7043)在 android.view.View.performClick(View.java:7043)
at com.google.android.material.button.MaterialButton.performClick(:992)在 com.google.android.material.button.MaterialButton.performClick(:992)
at android.view.View.performClickInternal(View.java:7016)在 android.view.View.performClickInternal(View.java:7016)
at android.view.View.access$3200(View.java:783)在 android.view.View.access$3200(View.java:783)
at android.view.View$PerformClick.run(View.java:26595)在 android.view.View$PerformClick.run(View.java:26595)
at android.os.Handler.handleCallback(Handler.java:873)在 android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)在 android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)在 android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6758)在 android.app.ActivityThread.main(ActivityThread.java:6758)
at java.lang.reflect.Method.invoke(Native Method)在 java.lang.reflect.Method.invoke(本机方法)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)
Caused by: java.lang.IllegalStateException: No successful match so far原因:java.lang.IllegalStateException:到目前为止没有成功匹配

here is my code这是我的代码

default:
    if (checkInternetConnection()) {
     getTranslateService();
     result = translate();
    } else {
     result = getResources().getString(R.string.no_connection);
    }
   break;
   editTranslate.setText(result);

And here are the methods这是方法

public void getTranslateService() {

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        try (InputStream is = getResources().openRawResource(R.raw.credentials)) {

            //Get credentials:
            final GoogleCredentials myCredentials = GoogleCredentials.fromStream(is);

            //Set credentials and get translate service:
            TranslateOptions translateOptions = TranslateOptions.newBuilder().setCredentials(myCredentials).build();
            translate = translateOptions.getService();

        } catch (IOException ioe) {
            ioe.printStackTrace();

        }
    }

    public String translate() {
        originalText = editText.getText().toString();
        Translation translation = translate.translate(originalText, Translate.TranslateOption.targetLanguage("yo"), Translate.TranslateOption.model("nmt"));
        translatedText = translation.getTranslatedText();

        //Translated text and original text are set to TextViews:
        return translatedText;

    }

Here is the full code of OnClickListener of the translate button,i have set of words that i don't want to bother to send them to the server, that's why I'm using switch case to test for them, so if the enterred value is not from the list then it should send the word to the api for translation.这是翻译按钮的 OnClickListener 的完整代码,我有一组我不想费心将它们发送到服务器的单词,这就是为什么我使用 switch case 来测试它们,所以如果输入的值不在列表中,则应将单词发送到 api 进行翻译。

trans.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        String t = editText.getText().toString().toLowerCase().trim();

        if (t.length() == 0) {
            Toast.makeText(getApplicationContext(), "Enter Text Value", Toast.LENGTH_LONG).show();
            editText.requestFocus();
            return;
        }

        String result;

        progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setMessage("Please wait while loading..."); // Setting Message
        progressDialog.setTitle("Translating"); // Setting Title
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // Progress Dialog Style Spinner
        progressDialog.setCancelable(true);
        progressDialog.show();

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                progressDialog.dismiss();
            }}, 2000);

        switch (t) {
            case "i love you":
                result = "Mo nif̣ẹrẹ";
                break;
            case "i want you":
                result = "Mo fẹ̣ ọ";
                break;
            case "good evening":
                result = "Ẹ kaalẹ";
                break;
            case "i like you":
                result = "Mo fẹran rẹ";
                break;
            case "how are you":
                result = "Bawo lo se wa";
                break;
            case "i need your help":
                result = "Mo nilo iranlọwọ re";
                break;
            case "i need money":
                result = "Mo nilo owo";
                break;
            case "i miss you":
                result = "Aro rẹ nsọ mi";
                break;
            case "what is my name":
                result = "Kini orukọ mi";
                break;
            case "i love my husband":
                result = "Mo niifẹ ọkọ mi";
                break;
            case "i am hungry":
                result = "Ebi n pa mi";
                break;
            case "i want hot water":
                result = "Mo fẹ omi gbona";
                break;
            case "look at me":
                result = "Wo mi";
                break;
            case "come back":
                result = "Pada wa";
                break;
            case "it is very good":
                result = "O dara pupọ";
                break;
            case "come to school":
                result = "Wa si ile-iwe";
                break;
            case "help yourself":
                result = "Ran ara rẹ lọwọ";
                break;
            case "wait for me":
                result = "Duro de mi";
                break;
            default:
                if (checkInternetConnection()) {
                    getTranslateService();
                    result = translate();
                } else {
                    result = getResources().getString(R.string.no_connection);
                }
            break;
        }
        editTranslate.setText(result);
    }

});

Turn minifyenabled back to false has solved the problem.将 minifyenabled 转回false已解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 引起:java.lang.IllegalStateException - Caused by: java.lang.IllegalStateException Spring Boot应用程序在云铸造厂java.lang.IllegalStateException上崩溃 - spring boot app crashing on cloud foundry java.lang.IllegalStateException 引起:java.lang.IllegalStateException:包未安装? - Caused by: java.lang.IllegalStateException: package not installed? java.lang.RuntimeException:原因:java.lang.IllegalStateException: - java.lang.RuntimeException: Caused by: java.lang.IllegalStateException: Android应用程式java.lang.IllegalStateException错误 - Android app java.lang.IllegalStateException error 关闭对话框后再次打开对话框时,应用程序崩溃并给出“ java.lang.IllegalStateException” - App crashing giving 'java.lang.IllegalStateException' when opening a dialog again after closing it 单击按钮后应用程序崩溃 - java.lang.IllegalStateException:无法执行 android 的方法:onClick - App crashing after clicking Button- java.lang.IllegalStateException: Could not execute method for android:onClick 引起:java.lang.IllegalStateException:GoogleApiClient 尚未连接 - Caused by: java.lang.IllegalStateException: GoogleApiClient is not connected yet 原因:java.lang.IllegalStateException:必须提供事务管理器 - Caused by: java.lang.IllegalStateException: A transaction manager must be provided 引起:java.lang.IllegalStateException:ParsePlugins已经初始化 - Caused by: java.lang.IllegalStateException: ParsePlugins is already initialized
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM