【发布时间】:2020-02-03 11:27:43
【问题描述】:
我的应用想通过这个方法打开一个网页链接(比如https://www.google.com):
public void openUrl(Activity activity, String urlParam) {
String url = Uri.encode(urlParam);
Intent browserIntent = new Intent(Intent.CATEGORY_BROWSABLE, Uri.parse(url));
browserIntent.setAction(ACTION_VIEW);
activity.startActivity(browserIntent);
}
我收到此错误:
android.content.ActivityNotFoundException:未找到处理 Intent 的 Activity { act=android.intent.action.VIEW dat=https://www.google.com }
如果我让应用调用选择器以供用户选择应用,则设备上会显示一条消息,指出没有应用可以处理该操作。
startActivity(Intent.createChooser(intent, "Browse with"));
所以,这也行不通。
这很奇怪,我看到很多类似的问题但没有解决方案。网址正确。
这是 Gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
这怎么可能?我有另一个使用类似代码的应用程序,它能够调用浏览器在同一设备上显示 URL。
这是它的 Gradle 文件:
apply plugin: 'android'
android {
//noinspection GradleCompatible
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.myappname.app"
versionCode 62
minSdkVersion 19
targetSdkVersion 28
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:28.0.0'
}
如何解决这个问题?
【问题讨论】:
-
@Md. Asaduzzaman 我的网址是正确的,我不明白如何解决。
-
删除这个
String url = Uri.encode(urlParam);解决问题
标签: java android url android-intent android-gradle-plugin