Skip to content

Commit 3a7340e

Browse files
committed
Avoid crash for invalid Uri.
1 parent 1a71a61 commit 3a7340e

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

router-api/src/main/java/com/lzh/nonview/router/Router.java

+15-10
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,21 @@ public IRoute getRoute () {
181181
}
182182

183183
private IRoute getLocalRoute() {
184-
RouteRule rule;
185-
if (!Utils.isValidUri(uri)) {
186-
return new IRoute.EmptyRoute(internalCallback);
187-
} else if ((rule = ActionRoute.findRule(uri, Cache.TYPE_ACTION_ROUTE)) != null) {
188-
return new ActionRoute().create(uri, rule, new Bundle(), internalCallback);
189-
} else if ((rule = ActivityRoute.findRule(uri, Cache.TYPE_ACTIVITY_ROUTE)) != null) {
190-
return new ActivityRoute().create(uri, rule, new Bundle(), internalCallback);
191-
} else if (BrowserRoute.canOpenRouter(uri)) {
192-
return BrowserRoute.getInstance().setUri(uri);
193-
} else {
184+
try {
185+
RouteRule rule;
186+
if (!Utils.isValidUri(uri)) {
187+
return new IRoute.EmptyRoute(internalCallback);
188+
} else if ((rule = ActionRoute.findRule(uri, Cache.TYPE_ACTION_ROUTE)) != null) {
189+
return new ActionRoute().create(uri, rule, new Bundle(), internalCallback);
190+
} else if ((rule = ActivityRoute.findRule(uri, Cache.TYPE_ACTIVITY_ROUTE)) != null) {
191+
return new ActivityRoute().create(uri, rule, new Bundle(), internalCallback);
192+
} else if (BrowserRoute.canOpenRouter(uri)) {
193+
return BrowserRoute.getInstance().setUri(uri);
194+
} else {
195+
return new IRoute.EmptyRoute(internalCallback);
196+
}
197+
} catch (Exception e) {
198+
internalCallback.onOpenFailed(e);
194199
return new IRoute.EmptyRoute(internalCallback);
195200
}
196201
}

sample/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ android {
2828
}
2929

3030
def parceler_version="1.4.0"
31-
def router_version="41ab27dd4f"
31+
def router_version="1a71a61556"
3232
def butterknife_version='8.0.1'
3333
dependencies {
3434
api fileTree(include: ['*.jar'], dir: 'libs')
3535
api 'com.alibaba:fastjson:1.2.47'
36-
api 'com.github.yjfnypeu:EasyAndroid:1.2.4'
36+
api 'com.github.yjfnypeu:EasyAndroid:1.2.5'
3737

3838
api "com.jakewharton:butterknife:$butterknife_version"
3939
kapt "com.jakewharton:butterknife-compiler:$butterknife_version"

0 commit comments

Comments
 (0)