uts的config.json示例代码如下
{
"minSdkVersion": "21",
"dependencies": [
{
"id":"com.facebook.android:facebook-android-sdk",
"source": "implementation ('com.facebook.android:facebook-android-sdk:16.3.0') {exclude group:'androidx.core', module:'core-ktx' exclude group:'org.jetbrains.kotlin', module:'kotlin-stdlib-jdk7'}"
},
]
}
除此之外,还尝试过
{
"minSdkVersion": "21",
"dependencies": [
{
"id":"com.facebook.android:facebook-android-sdk",
"source": "implementation ('com.facebook.android:facebook-share:latest.release') {exclude group:'androidx.core', module:'core-ktx' exclude group:'org.jetbrains.kotlin', module:'kotlin-stdlib-jdk7'}"
},
]
}
以及
{
"minSdkVersion": "21",
"dependencies": [
{
"id":"com.facebook.android:facebook-android-sdk",
"source": "api ('com.facebook.android:facebook-share:latest.release') {exclude group:'androidx.core', module:'core-ktx' exclude group:'org.jetbrains.kotlin', module:'kotlin-stdlib-jdk7'}"
},
]
}
直接使用
{
"minSdkVersion": "21",
"dependencies": [
“com.facebook.android:facebook-share:latest.release”
]
}
则会报androidx.core:core-ktx 和 org.jetbrains.kotlin:kotlin-stdlib-jdk7依赖冲突错误
插件中
index.uts 相关代码如下
import ShareLinkContent from 'com.facebook.share.model.ShareLinkContent';
import MessageDialog from 'com.facebook.share.widget.MessageDialog';
import { Uri } from 'android.net'
export type Share = () => void
export const messengerShare:Share = ()=> {
const context = UTSAndroid.getUniActivity()
const content = new ShareLinkContent.Builder().setContentUrl(Uri.parse('https://www.baidu.com')).build();
MessageDialog.show(context, content)
}
AndroidManifest.xml代码如下
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="io.dcloud.uni_modules.xxxxxxxxTest001" >
// 注意:这里是插件的包名而不是应用的包名
// 配置权限
<!--创建前台服务权限-->
<uses-permission android:name="android.permission.INTERNET"/>
<queries>
<provider android:authorities="com.facebook.katana.provider.PlatformProvider" />
</queries>
<application>
// 配置service / activity
<activity android:name="com.facebook.FacebookActivity" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="xxxxxxxx"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="xxxxxxxx"/>
<provider android:authorities="com.facebook.app.FacebookContentProviderxxxxxxxx" android:name="com.facebook.FacebookContentProvider" android:exported="true"/>
</application>
</manifest>
nvue页面中调用代码如下
import {messengerShare} from "@/uni_modules/xxxxxxxx-test001"
const testshare =()=>{
messengerShare()
}
最终调用日志一直报这个错误
12:59:21.939 [JS Framework] Failed to invoke the event handler of "click" on u-text (120):
Error: targetMethod error::java.lang.NoClassDefFoundError: com.facebook.share.widget.MessageDialog
12:59:21.949 reportJSException >>>> exception function:__WEEX_CALL_JAVASCRIPT__, exception:JavaScript execute error!Uncaught Error: targetMethod error::java.lang.NoClassDefFoundError: com.facebook.share.widget.MessageDialog
1 个回复
DCloud_Android_DQQ
已在QQ联系,发一下复现问题的示例工程