在这里插入图片描述

背景

公司要做一个串口测试我玩意,我想着用uniapp加安卓混合开发。学习了一下跳转。但是照着教程敲的都是用plus跳转的方法,但是会报错io.dcloud.uniplugin.你的插件@528d82b Invoker gotoNativePage exception:java.lang.reflect.InvocationTargetException,网上搜说是映射文件问题,下面详细解决这个问题。
前提是要配置好uniapp和安卓原生相关配置

Hbuilder X

<template>
	<div>
		<button type="primary" @click="gotoNativePage">跳转原生Activity</button>
	</div>
</template>
<script>
var testModule = uni.requireNativePlugin("TestModule")
export default {
	methods: {
		gotoNativePage() {
			testModule.gotoNativePage();//原生插件方法
		}
	}
}
</script>

Android Studio

在这里插入图片描述
serial_port是要跳转的项目
uniplugin_module就是安卓原生插件
在这里插入图片描述

	//在插件注入方法。这个就是相当于安卓的intent的跳转
    @UniJSMethod (uiThread = true)
    public void gotoNativePage(){
        if(mUniSDKInstance != null && mUniSDKInstance.getContext() instanceof Activity) {
        //ComTest.class就是跳转Activity的入口,记得引入
            Intent intent = new Intent(mUniSDKInstance.getContext(), ComTest.class);
            ((Activity)mUniSDKInstance.getContext()).startActivityForResult(intent, REQUEST_CODE);
        }
    }

插件Module下的build.gradle
在这里插入图片描述

dependencies {
    implementation project(':serial_port')
}

在这里插入图片描述

!!!!重点 !!!解决 java.lang.reflect.InvocationTargetException

在AndroidManifest.xml下加入项目的路径
在这里插入图片描述

<application>
	<activity android:name="com.bestom.ComAssistant.ComTest"
	    android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"></activity>
</application>

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐