問題:サードパーティの SDK を含むネイティブ プラグインを呼び出すと、 uniapp がNoClassDefFoundError
例外をスローします。
私のネイティブ プラグインは、common-net プラグインを使用して自分でパッケージ化した *.arr ファイルであるため、Make Module の実行後に uniapp プロジェクトで参照され、カスタム ベースをパッケージ化するときに例外がスローされますNoClassDefFoundError
。
解決
module -> telnet -> build.gradle を次のように変更しますcompileOnly
。commons-net-3.8.0.jar より前のコードを参照していますimplementation
。
dependencies {
compileOnly fileTree(include: ['commons-net-3.8.0.jar'], dir: './libs') //引如的第3方插件,将compileOnly修改为implementation
}
変更後:
dependencies {
implementation fileTree(include: ['commons-net-3.8.0.jar'], dir: './libs')
}
図に示すように、
次にモジュールを再作成し、プロジェクトをインポートします。
注意:
私のプラグインはcommons-net-3.8.0.jar
ローカルライブラリに導入されていますが、uniappプロジェクトではnativeplugins→telnet→package.jsonでdependencies
依存ライブラリを追加せず、個人テストが有効です。
参考: uniapp がサードパーティ SDK を含むネイティブ プラグインを呼び出すと NoClassDefFoundError がスローされる
その他の解決策: uniapp の Android プラグイン開発を参照し、サードパーティ ライブラリの NoClassDefFoundError 問題を紹介します。