为了多个 Android 的 flavor 配置,将 wxapi.WXEntryActivity 配置成别名 Activity, 但是 Dcloud 内部会触发 hasWXEntryActivity() 判断失败,导致拉起分享成功,却提示 Unable to send 的错误。
下面是 AndroidManifest.xml 中对 .wxapi.WXEntryActivity 的配置:
<activityandroid:name="my.wxapi.WXEntryActivity"android:label="@string/app_name"android:exported="true"android:launchMode="singleTop">
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:scheme="wxxxxxxxxxxx"/>
</intent-filter>
</activity>
<activity-aliasandroid:name="${applicationId}.wxapi.WXEntryActivity"android:exported="true"android:targetActivity="my.wxapi.WXEntryActivity" />查了下代码, 应该是 hasWXEntryActivity() 内部的 Class.forName(clsName) 处不能查找到 activity-alias 类导致的。
privatebooleanhasWXEntryActivity(Contextcontext) {
StringclsName = context.getPackageName() + ".wxapi.WXEntryActivity";
try {
Class.forName(clsName);
returntrue;
} catch (ClassNotFoundExceptione) {
returnfalse;
}
} | privatebooleanhasWXEntryActivity(Contextcontext) { |
为了多个 Android 的 flavor 配置,将 wxapi.WXEntryActivity 配置成别名 Activity, 但是 Dcloud 内部会触发 hasWXEntryActivity() 判断失败,导致拉起分享成功,却提示 Unable to send 的错误。
下面是 AndroidManifest.xml 中对 .wxapi.WXEntryActivity 的配置:
查了下代码, 应该是 hasWXEntryActivity() 内部的 Class.forName(clsName) 处不能查找到 activity-alias 类导致的。
H5P.Android/feature/share-weixin/src/io/dcloud/share/mm/WeiXinApiManager.java
Line 975 in 5e7cff2