【Android】将 html 打包为 apk 文章目录第一步准备工作第二步导入 HTML 文件第三步修改布局文件第四步编写 Java/Kotlin 代码第五步配置权限第六步打包生成 APK进阶提示如何打包发布版常见问题排查在 Android Studio 中将一个 HTML 文件或整个静态网站打包为 APK最核心的技术是使用WebView组件。以下是详细的步骤指南适用于 Android Studio 的最新版本第一步准备工作确保你已经安装了 Android Studio并且创建了一个新的项目。打开 Android Studio。选择New Project。选择Empty Views Activity(或 Empty Activity)点击 Next。命名你的应用选择语言为Java或Kotlin点击 Finish。第二步导入 HTML 文件你需要将 HTML 文件放入项目的资源文件夹中。在项目左侧的文件目录中找到app src main。右键点击main文件夹选择New Directory输入名称assets。(注意如果已有assets文件夹则无需创建)。将你的 HTML 文件例如index.html以及相关的 CSS、JS、图片文件夹直接复制粘贴到assets文件夹中。路径最终为app/src/main/assets/index.html。第三步修改布局文件我们需要在界面上放置一个 WebView 组件。打开app src main res layout activity_main.xml。删除默认的 TextView 组件。拖入一个WebView组件或者将代码替换为如下内容?xml version1.0 encodingutf-8?RelativeLayoutxmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentWebViewandroid:idid/webViewandroid:layout_widthmatch_parentandroid:layout_heightmatch_parent//RelativeLayout第四步编写 Java/Kotlin 代码这一步是核心用于让 WebView 加载你的 HTML 文件。如果你使用 Java (MainActivity.java)packagecom.example.yourappname;// 记得换成你的包名importandroid.os.Bundle;importandroid.webkit.WebSettings;importandroid.webkit.WebView;importandroid.webkit.WebViewClient;importandroidx.appcompat.app.AppCompatActivity;publicclassMainActivityextendsAppCompatActivity{privateWebViewwebView;OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);webViewfindViewById(R.id.webView);// 配置 WebView 设置WebSettingswebSettingswebView.getSettings();webSettings.setJavaScriptEnabled(true);// 启用 JavaScriptwebSettings.setDomStorageEnabled(true);// 启用本地存储如果需要// 这一行至关重要确保链接在应用内打开而不是跳转到系统浏览器webView.setWebViewClient(newWebViewClient());// 加载 assets 文件夹下的 html 文件webView.loadUrl(file:///android_asset/index.html);}// 实现后退键导航可选OverridepublicvoidonBackPressed(){if(webView.canGoBack()){webView.goBack();}else{super.onBackPressed();}}}如果你使用 Kotlin (MainActivity.kt)packagecom.example.yourappnameimportandroid.os.Bundleimportandroid.webkit.WebSettingsimportandroid.webkit.WebViewimportandroid.webkit.WebViewClientimportandroidx.appcompat.app.AppCompatActivityclassMainActivity:AppCompatActivity(){privatelateinitvarwebView:WebViewoverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)webViewfindViewById(R.id.webView)valwebSettings:WebSettingswebView.settings webSettings.javaScriptEnabledtruewebSettings.domStorageEnabledtruewebView.webViewClientWebViewClient()// 防止跳转外部浏览器webView.loadUrl(file:///android_asset/index.html)}overridefunonBackPressed(){if(webView.canGoBack()){webView.goBack()}else{super.onBackPressed()}}}第五步配置权限如果你的 HTML 文件需要访问网络例如加载在线图片或 API你需要添加网络权限。打开app src main AndroidManifest.xml。在manifest标签内application标签之前添加一行uses-permissionandroid:nameandroid.permission.INTERNET/如果仅仅是纯静态本地 HTML 文件这一步可以跳过但建议加上以防万一。第六步打包生成 APK代码写好后就可以生成安装包了。点击 Android Studio 顶部菜单栏的Build。选择Build Bundle(s) / APK(s)。选择Build APK(s)。等待右下角进度条构建完成。构建成功后右下角会弹出一个提示框点击locate或在app/build/outputs/apk/debug/目录下找到app-debug.apk。这个 APK 文件就可以安装到手机上运行了。进阶提示如何打包发布版上面生成的是 Debug 版本未优化、未签名如果你想做正式发布点击顶部菜单Build-Generate Signed Bundle / APK。选择APK点击 Next。创建一个新的密钥库或选择已有的填写密码。选择release构建变体。完成后生成的 APK 是经过混淆优化并签名的可以直接上传到应用商店。常见问题排查网页打不开或空白检查路径是否为file:///android_asset/index.html注意是asset没有 s但文件夹名是assets。点击链接跳转到浏览器确保添加了webView.setWebViewClient(new WebViewClient());。中文乱码确保你的 HTML 文件头部包含meta charsetutf-8。无法下载Gradle使用国内代理下载install Gradle distribution from https://services.gradle.org/distributions/gradle-8.13-bin.zip. Reason: java.net.SocketTimeoutException: Connect timed out打开项目根目录下的gradle/wrapper/gradle-wrapper.properties文件。找到distributionUrl一行将其值改为国内镜像地址例如distributionUrlhttps://mirrors.aliyun.com/macports/distfiles/gradle/gradle-8.13-bin.zip阿里云镜像地址为https://mirrors.aliyun.com/macports/distfiles/gradle/请确认该路径下存在gradle-8.13-bin.zip文件。若版本不同需修改版本号。其他可用镜像使用时请自行验证链接有效性腾讯云https://mirrors.cloud.tencent.com/gradle/gradle-8.13-bin.zip华为云https://mirrors.huaweicloud.com/gradle/gradle-8.13-bin.zip清华大学https://mirrors.tuna.tsinghua.edu.cn/gradle/gradle-8.13-bin.zip保存文件后重新同步项目点击工具栏的“Sync Project with Gradle Files”按钮。