Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
virtualapk
提交
254c9aac
V
virtualapk
项目概览
DiDi
/
virtualapk
10 个月 前同步成功
通知
63
Star
8886
Fork
1530
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
virtualapk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
254c9aac
编写于
7月 04, 2018
作者:
S
superq_sky
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Emergency solution: to avoid the stub activity not found error.
上级
0ae4d69f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
50 addition
and
2 deletion
+50
-2
CoreLibrary/src/main/AndroidManifest.xml
CoreLibrary/src/main/AndroidManifest.xml
+2
-1
CoreLibrary/src/main/java/com/didi/virtualapk/delegate/StubActivity.java
.../main/java/com/didi/virtualapk/delegate/StubActivity.java
+36
-0
CoreLibrary/src/main/java/com/didi/virtualapk/internal/VAInstrumentation.java
.../java/com/didi/virtualapk/internal/VAInstrumentation.java
+12
-1
未找到文件。
CoreLibrary/src/main/AndroidManifest.xml
浏览文件 @
254c9aac
...
...
@@ -6,8 +6,9 @@
<uses-permission
android:name=
"android.permission.CHANGE_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<application>
<activity
android:exported=
"false"
android:name=
"com.didi.virtualapk.delegate.StubActivity"
android:launchMode=
"standard"
/>
<!-- Stub Activities -->
<activity
android:exported=
"false"
android:name=
".A$1"
android:launchMode=
"standard"
/>
<activity
android:exported=
"false"
android:name=
".A$2"
android:launchMode=
"standard"
...
...
CoreLibrary/src/main/java/com/didi/virtualapk/delegate/StubActivity.java
0 → 100644
浏览文件 @
254c9aac
package
com.didi.virtualapk.delegate
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.pm.ResolveInfo
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
/**
* Created by qiaopu on 2018/6/13.
*/
public
class
StubActivity
extends
Activity
{
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
// Go to the main activity
Intent
mainIntent
=
getPackageManager
().
getLaunchIntentForPackage
(
getPackageName
());
if
(
mainIntent
==
null
)
{
mainIntent
=
new
Intent
(
Intent
.
ACTION_MAIN
);
mainIntent
.
addCategory
(
Intent
.
CATEGORY_LAUNCHER
);
mainIntent
.
setPackage
(
getPackageName
());
ResolveInfo
resolveInfo
=
getPackageManager
().
resolveActivity
(
mainIntent
,
0
);
if
(
resolveInfo
!=
null
)
{
mainIntent
.
setClassName
(
this
,
resolveInfo
.
activityInfo
.
name
);
}
}
startActivity
(
mainIntent
);
finish
();
}
}
CoreLibrary/src/main/java/com/didi/virtualapk/internal/VAInstrumentation.java
浏览文件 @
254c9aac
...
...
@@ -21,6 +21,7 @@ import android.app.Activity;
import
android.app.Application
;
import
android.app.Fragment
;
import
android.app.Instrumentation
;
import
android.content.ActivityNotFoundException
;
import
android.content.ComponentName
;
import
android.content.Context
;
import
android.content.Intent
;
...
...
@@ -34,6 +35,7 @@ import android.os.PersistableBundle;
import
android.util.Log
;
import
com.didi.virtualapk.PluginManager
;
import
com.didi.virtualapk.delegate.StubActivity
;
import
com.didi.virtualapk.utils.PluginUtil
;
import
com.didi.virtualapk.utils.Reflector
;
...
...
@@ -113,7 +115,16 @@ public class VAInstrumentation extends Instrumentation implements Handler.Callba
LoadedPlugin
plugin
=
this
.
mPluginManager
.
getLoadedPlugin
(
component
);
if
(
plugin
==
null
)
{
return
newActivity
(
mBase
.
newActivity
(
cl
,
className
,
intent
));
// Not found then goto stub activity.
Context
context
=
this
.
mPluginManager
.
getHostContext
();
Boolean
debugMode
=
Reflector
.
QuietReflector
.
on
(
context
.
getPackageName
()
+
".BuildConfig"
).
field
(
"DEBUG"
).
get
();
if
(
debugMode
!=
null
&&
debugMode
)
{
throw
new
ActivityNotFoundException
(
"error intent: "
+
intent
.
toURI
());
}
Log
.
i
(
TAG
,
"Not found. starting the stub activity: "
+
StubActivity
.
class
);
return
newActivity
(
mBase
.
newActivity
(
cl
,
StubActivity
.
class
.
getName
(),
intent
));
}
Activity
activity
=
mBase
.
newActivity
(
plugin
.
getClassLoader
(),
targetClassName
,
intent
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录