本文只针对UniappX的安卓端本地打包(iOS端我还没看)
首先,说明一下,我不会android studio原生开发,一直都是用的云打包。最近接了个项目,必须本地打包,就专门研究了一下。
我现在已经把UniappX的本地打包走通了,对于下面两点,对于小白可能会蒙圈,我就蒙圈了。所以写下来分享一下。可能有不对的地方,请及时指正。
昨天新装的:Android Studio Otter | 2025.2.1 Patch 1
以下是UniappX的本地打包过程:
打包第一步:在android studio里创建一个Empty Activity的工程,包名使用HBuilderX里的项目包名。
打包第二步:照着官方文档一步步做,绝对好使:https://doc.dcloud.net.cn/uni-app-x/native/use/android.html
我在这里说两点容易掉坑里的地方:
1.按文档改完后,启动调试发现打开的还是项目原本的默认页面 hello android.
解决方法:打开/app/src/main/AndroidManifest.xml重新设置首页,下面的是我修改后的,不要复制粘贴,比对一下,缺哪个粘哪个。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:name="io.dcloud.uniapp.UniApplication"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Mytest004">
<activity
android:name="io.dcloud.uniapp.UniAppActivity"
android:configChanges="orientation|keyboard|keyboardHidden|smallestScreenSize|screenLayout|screenSize|mcc|mnc|fontScale|navigation|uiMode"
android:exported="true"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/UniAppX.Activity.DefaultTheme"
android:windowSoftInputMode="adjustResize"
tools:replace="android:label,android:exported,android:theme,android:configChanges,android:windowSoftInputMode,android:screenOrientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="DCLOUD_UNI_APPID"
android:value="你的项目appid" />
<meta-data
android:name="DCLOUD_CHANNEL"
android:value="googleplay" />
</application>
</manifest>
2.针对插件
1.“前端组件-通用组件”,这类组件不涉及原生代码,因此在生成本地资源包的时候,会被生成到src目录下,也就是和pages在同一个目录下:unpackage/resources/app-android/uniappx/app-android/src/
因此,在复制资源的时候,就把index.kt,pages,uni_modules一起粘贴过去就可以了。
2.“UTS插件-api插件”,这类插件因为有原生代码,所在生成本地资源包的时候,会被生成到unpackage/resources/app-android/目录下,在这里你会看到一个uni_modules文件夹,里面就是你的插件。如果里面没有你的插件,说明你的页面没有引用这个插件或者代码有错误。
UTS插件在安卓端kotlin代码顶端的正确包名应该是这种格式的:uts.sdk.modules.starViewtime
因此在Android Studio中创建模块时,包名必须与uni-app X插件的包名完全一致,包名也要叫uts.sdk.modules.starViewtime,因为如果两边包名不一样,插件就不起作用了。
接下来重点来了:目录结构必须严格按照包名的层次结构创建,java后面的文件夹需要手动创建。
- 例如: 刚才创建的模块文件夹下的/src/main/java/uts/sdk/modules/starViewtime/
最后把插件文件复制进去,这样你的UTS原生插件就好使了。
0 个评论
要回复文章请先登录或注册