Android Studio运行、离线打包uni-app项目

首先需要下载Android Studio
下载HBuilderX
下载Android离线打包SDK(https://nativesupport.dcloud.net.cn/AppDocs/download/android)


一、创建android项目

二、配置项目

将Android离线打包SDK中的lib.5plus.base-release.aar、android-gif-drawable-release@[x.y.z].arr、uniapp-v8-release.aar、oaid_sdk_[x.y.z].aar拷贝到android项目的app的libs中([x.y.z]为你下载的最新的版本号)

打开app -> build.gradle
在android下面添加

aaptOptions {       
    additionalParameters '--auto-add-overlay'       
    ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}

在dependencies下面添加

implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.alibaba:fastjson:1.1.46.android'
implementation 'com.google.code.gson:gson:2.8.6'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation "com.facebook.fresco:animated-gif:1.13.0"
implementation 'androidx.recyclerview:recyclerview:1.1.0'

打开app -> src -> main -> AndroidManifest.xml将默认生成在application标签内的全部注释

在application内添加

    android:name="io.dcloud.PandoraEntry"    
    android:configChanges="orientation|keyboardHidden|keyboard|navigation"    
    android:label="@string/app_name"   
    android:launchMode="singleTask"
    android:hardwareAccelerated="true"    
    android:theme="@style/TranslucentTheme"    
    android:screenOrientation="user"    
    android:windowSoftInputMode="adjustResize">
                     
                            android:name="android.intent.action.MAIN"/>            
                            android:name="android.intent.category.LAUNCHER"/>        
        
  

    android:name="io.dcloud.PandoraEntryActivity"    
    android:launchMode="singleTask"           android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"    
    android:hardwareAccelerated="true"   
    android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"  
    android:screenOrientation="user"    
    android:theme="@style/DCloudTheme"    
    android:windowSoftInputMode="adjustResize">  
                 
                            android:name="android.intent.category.DEFAULT"/>                                                  
                            android:name="android.intent.category.BROWSABLE"/>                          
                            android:name="android.intent.action.VIEW"/>       
                            android:scheme="h56131bcf"/> 
        


 
    android:name="io.dcloud.common.util.DCloud_FileProvider"
    android:authorities="${apk.applicationId}.dc.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true"> 
                    android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/dcloud_file_provider"/>

注意:要将provider中的${apk.applicationId}修改为你的应用包名。可以在AndroidManifest.xml的跟标签下查看

创建asstes文件夹

将Android离线打包SDK中assets下的data拷贝到项目中新建好的assets下
HBuilderX导出项目

导出成功

将导出的__UNI__E085701文件夹拷贝到项目中assets文件夹下(这个文件夹名是uni-app的appId,不是固定的! 不是固定的! 不是固定的!)
打开项目app -> src -> main -> assets -> data -> dcloud_control.xml将appid改为自己导出的appid

三、运行

点击运行会产生这个错误

libs中的aar中用的Android SDK版本为19,但是我们创建的项目最小可以在Android SDK 16上运行所有报错。将app下的build.gradle中android中minSdkVersion改为19,等待Sync Now之后重新运行


又会产生这个错误.意思和上面一样修改之后继续运行

成功运行

四、打包


打包成功

点击打开打包之后apk存放的文件夹。目录为app -> build -> outputs -> apk -> debug

你可能感兴趣的:(Android Studio运行、离线打包uni-app项目)