首先我们知道,Android和uni-app中写的代码是完全不一样的,他们的编译环境也是不一样的,呢么如何要在Androidstudio中调用uni-app中的代码呢?我们这边来准备几个步骤请看:
第一步:在Androidstudio中创建一个空的项目(这一步是必须或者可以创建一个demo)
第2步:下载hbuild打包apk的sdk(如图:此地址在hbuilder中的本地打包指南中可以直接进入,除了导入地图还有功能的使用等。。。)
这是sdk下载地方,但是需要的aar包和配置步骤我下面已经贴出,朋友们可以非必须下载sdk
第3步:将此aar拷贝libs的库到创建的android项目
(注意此arr包因为我暂时不知道如何上传文件所以只有名字,等我研究如何上传文件会再次添加非常抱歉。。。。)
android-gif-drawable-release@1.2.17.aar
lib.5plus.base-release.aar
msa_mdid_1.0.13.aar
第4步:4.拷贝此aar到libs中
uniapp-v8-release.aar
5.设置导入库和必要的三方依赖库
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
//noinspection GradleCompatible
implementation "com.android.support:appcompat-v7:28.0.0"
/*uniapp所需库-----------------------开始*/
implementation 'com.android.support:recyclerview-v7:28.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'
6.在主项目的moudle对应的build.gradle中配置
android{
....
aaptOptions {
additionalParameters '--auto-add-overlay'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
}
7.在主项目的module对应的build.gradle中配置libs的包
记住是最外层
repositories {
flatDir {
dirs 'libs'
}
}
8.在android项目中的main目录下创建一个assets,把data文件夹拷贝到刚刚创建的assets文件夹下
创建一个data文件夹内容为:
dcloud_control.xml:
(这一步appid是拿到hbuilder中的appid如图:)
<?xml version="1.0"?>
<hbuilder debug="true" syncDebug="true">
<apps>
<app appid="__UNI__0021D11" appver=""/>
</apps>
</hbuilder>
dcloud_error.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="HandheldFriendly" content="true"/>
<meta name="MobileOptimized" content="320"/>
<title>Error</title>
<script type="text/javascript">
// H5 plus事件处理
var ws=null;
function plusReady(){
// Android处理返回键
plus.key.addEventListener('backbutton',function(){
(history.length==1)&&ws.close();
var c=setTimeout(function(){
ws.close();
},1000);
window.onbeforeunload</