-2

I'm currently developing an musicplayer app in which i want to link the artists websites with chrome custom tabs (Chrome is installed on my phone). Most of the links work fine and open like they should but when i want to open the website from imagine dragons i'm getting the error "No Activity found to handle Intent". The Link just looks like the others but my app crashes every time i want to open this link.

This is my Error Log:

E/UncaughtException: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.imaginedragonsmusic.com/ (has extras) }
                     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1815)
                     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1513)
                     at android.app.Activity.startActivityForResult(Activity.java:3940)
                     at android.app.Activity.startActivityForResult(Activity.java:3888)
                     at android.app.Activity.startActivity(Activity.java:4211)
                     at android.support.v4.content.ContextCompat.startActivity(ContextCompat.java:141)
                     at android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:262)
                     at com.mobileagreements.radio.liferadio.activities.SongDetailActivity.onClick(SongDetailActivity.java:160)
                     at android.view.View.performClick(View.java:5106)
                     at android.view.View$PerformClick.run(View.java:20329)
                     at android.os.Handler.handleCallback(Handler.java:739)
                     at android.os.Handler.dispatchMessage(Handler.java:95)
                     at android.os.Looper.loop(Looper.java:135)
                     at android.app.ActivityThread.main(ActivityThread.java:5912)
                     at java.lang.reflect.Method.invoke(Native Method)
                     at java.lang.reflect.Method.invoke(Method.java:372)
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)

Has anyone experienced a similar problem and is able to help me?

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Distra
  • 2,260
  • 2
  • 14
  • 23

2 Answers2

1

Try modifying the url

from www.imaginedragonsmusic.com/

to http://www.imaginedragonsmusic.com/

Use below code:

if (!url.startsWith("http://") && !url.startsWith("https://"))
   url = "http://" + url;

Hope it helps!!!

Firoz Memon
  • 4,282
  • 3
  • 22
  • 32
0

Here is my code from app

public class MainActivity extends AppCompatActivity {

Button btChrome, btWebView;
EditText etUrl;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    etUrl = (EditText) findViewById(R.id.etUrl);
    btChrome = (Button) findViewById(R.id.btChrome);
    btWebView = (Button) findViewById(R.id.btWebView);

    btChrome.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String url = etUrl.getText().toString().toLowerCase().trim();
            if (url.isEmpty()) etUrl.setError("Enter URL");
            else if (!url.startsWith("http://") && !url.startsWith("https://")) {
                url = "http://" + url;
                openChromeTabs(url);
            } else {
                openChromeTabs(url);
            }
        }
    });

    btWebView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String url = etUrl.getText().toString().toLowerCase().trim();
            if (url.isEmpty()) etUrl.setError("Enter URL");
            else if (!url.startsWith("http://") && !url.startsWith("https://")) {
                url = "http://" + url;
                openWebView(url);
            } else {
                openWebView(url);
            }


        }
    });
}

void openChromeTabs(String url) {
    CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
    CustomTabsIntent customTabsIntent = builder.build();
    customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
}

void openWebView(String url){
    Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
    intent.putExtra("URL", url);
    startActivity(intent);
    }
}
Murli Prajapati
  • 8,833
  • 5
  • 38
  • 55