uni-app 原生插件SDK中debug新插件 提示基座不包含原生插件
uni-app 原生插件SDK中debug新插件 提示基座不包含原生插件
信息类别 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | Windows 10 21H1 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.4.7 |
手机系统 | Android |
手机系统版本号 | Android 11 |
手机厂商 | 华为 |
手机机型 | P40 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 离线 |
项目创建方式 | HBuilderX |
操作步骤:
在Android Studio中打开原生插件SDK,然后添加新模块,在build.gradle中添加依赖,在dcloud_uniplugins.json中注册插件
预期结果:
正常载入模块
实际结果:
报错
bug描述:
我将原来在2.8.8SDK中创建的原生插件移植到3.3.13SDK中,按照文档配置了dcloud_uniplugins.json
,但是一直提示“[WARN][JS Framework] 当前运行的基座不包含原生插件[AppManage],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座”。
dcloud_uniplugins.json
:
{
"nativePlugins": [
{
"plugins": [
{
"type": "module",
"name": "AppManage",
"class": "guolian.uni.app_manage.AppManageModule"
}
]
},
{
"plugins": [
{
"type": "module",
"name": "TestModule",
"class": "io.dcloud.uniplugin.TestModule"
}
]
},
{
"plugins": [
{
"type": "component",
"name": "myText",
"class": "io.dcloud.uniplugin.TestText"
}
]
},
{
"hooksClass": "",
"plugins": [
{
"type": "module",
"name": "DCloud-RichAlert",
"class": "uni.dcloud.io.uniplugin_richalert.RichAlertModule"
}
]
}
]
}
build.gradle:app
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
applicationId "com.android.UniPlugin"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
ndk {
abiFilters 'x86','armeabi-v7a'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
signingConfigs {
config {
keyAlias 'key0'
keyPassword '123456'
storeFile file('D:\\Workspace\\HBuilder\\Android-SDK@3.3.13.81245_20220315\\test.jks')
storePassword '123456'
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {
release {
signingConfig signingConfigs.config
zipAlignEnabled true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
signingConfig signingConfigs.config
zipAlignEnabled true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
androidResources {
ignoreAssetsPattern '!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~'
additionalParameters '--auto-add-overlay'
}
//使用uniapp时,需复制下面代码
/*代码开始*/
/*代码结束*/
}
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation fileTree(dir: 'libs', include: ['*.aar'])
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
/*uniapp所需库-----------------------开始*/
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
/*uniapp所需库-----------------------结束*/
// 基座需要,必须添加
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.alibaba:fastjson:1.1.46.android'
// 添加uni-app插件
implementation project(':uniplugin_component')
implementation project(':uniplugin_module')
implementation project(':uniplugin_richalert')
implementation project(':app_manage')
}
AppManageMoudle
:
package guolian.uni.app_manage;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.view.Window;
import android.view.WindowManager;
import com.alibaba.fastjson.JSONObject;
import org.xbill.DNS.DClass;
import org.xbill.DNS.Lookup;
import org.xbill.DNS.Resolver;
import org.xbill.DNS.SimpleResolver;
import org.xbill.DNS.Type;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
/**
* Created by Hox_online on 2020/8/26.
*/
public class AppManageModule extends UniModule {
// ···
}
更多关于uni-app 原生插件SDK中debug新插件 提示基座不包含原生插件的实战教程也可以访问 https://www.itying.com/category-93-b0.html
应该代码报错了
更多关于uni-app 原生插件SDK中debug新插件 提示基座不包含原生插件的实战教程也可以访问 https://www.itying.com/category-93-b0.html
能够正常编译通过,在2.8.8里使用weex api能够正常运行,到3.3.13里用uni api就不能正常载入插件了,调试输出里没有报错
在使用 UniApp 开发原生插件时,如果你在调试新插件时遇到“基座不包含原生插件”的提示,通常是因为以下原因之一:
-
插件未正确打包到基座:
- 确保你已经在
nativeplugins
目录下正确配置了原生插件,并且在manifest.json
文件中正确引用了插件。 - 如果你使用的是自定义基座,确保在打包自定义基座时已经将插件包含进去。
- 确保你已经在
-
未使用自定义基座:
- UniApp 默认的基座不包含任何原生插件,因此如果你在调试时使用的是默认基座,会提示“基座不包含原生插件”。
- 你需要通过 HBuilderX 打包一个自定义基座,并确保在打包时勾选了你要调试的原生插件。
-
插件配置错误:
- 检查插件的
package.json
文件,确保插件的配置信息正确无误。 - 确保插件的
module
和class
名称与原生代码中的定义一致。
- 检查插件的
-
未重新打包自定义基座:
- 如果你在开发过程中修改了插件的代码或配置,需要重新打包自定义基座,以确保新的插件代码被包含进去。
解决步骤:
-
创建或更新自定义基座:
- 打开 HBuilderX,选择项目。
- 点击菜单栏的“运行” -> “运行到手机或模拟器” -> “制作自定义调试基座”。
- 在打包自定义基座时,确保勾选了你正在开发的原生插件。
-
使用自定义基座调试:
- 打包完成后,选择“运行” -> “运行到手机或模拟器” -> “使用自定义基座运行”。
- 这样,你的应用就会使用包含原生插件的自定义基座进行调试。
-
检查插件配置:
- 确保
manifest.json
文件中的nativePlugins
配置正确。 - 例如:
"nativePlugins": { "myPlugin": { "version": "1.0.0", "provider": "your-plugin-provider" } }
- 确保