Skip to content

Commit 32636d2

Browse files
committed
getApplicationPackageName 返回宿主包名
1 parent 3accd2e commit 32636d2

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

projects/sdk/core/manifest-parser/src/main/kotlin/com/tencent/shadow/core/manifest_parser/PluginManifestGenerator.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,23 @@ private class PluginManifestBuilder(val manifestMap: ManifestMap) {
152152
Modifier.FINAL,
153153
)
154154
.returns(fieldSpec.type)
155-
.addStatement(CodeBlock.of("return ${fieldSpec.name}"))
155+
.addStatement(
156+
CodeBlock.of(
157+
if (fieldSpec.name == "applicationPackageName") {
158+
"try {\n" +
159+
" Class<?> aClass = Class.forName(\"top.niunaijun.shadow.BlackShadow\");\n" +
160+
" java.lang.reflect.Method getHostPackageName = aClass.getDeclaredMethod(\"getHostPackageName\");\n" +
161+
" getHostPackageName.setAccessible(true);\n" +
162+
" return (java.lang.String) getHostPackageName.invoke(null);\n" +
163+
"} catch (Throwable t) {\n" +
164+
" t.printStackTrace();\n" +
165+
"}\n" +
166+
"return ${fieldSpec.name}"
167+
} else {
168+
"return ${fieldSpec.name}"
169+
}
170+
)
171+
)
156172
.build()
157173

158174
private fun buildResIdField(fieldName: String, key: String): FieldSpec {

0 commit comments

Comments
 (0)