Android studio點擊運行按鈕在build\intermediates\apk\debug目錄下生成的apk在真機上安裝失敗,提示test only

Android studio點擊運行按鈕在build\intermediates\apk\debug目錄下生成的apk在真機上安裝失敗,提示test only

DeepSeek R1
思考 15 秒
思考過程

針對Android Studio生成的APK在真機安裝時提示“test only”的問題,以下是詳細解決方案:

1. 禁用Gradle的testOnly標志

在項目的build.gradle文件中添加以下配置:

android {testBuildType "debug" // 允許debug構建類型安裝測試APKbuildTypes {debug {testCoverageEnabled = false // 關閉測試覆蓋率統計// 關鍵配置:禁用testOnly標記matchingFallbacks = ['debug']}}
}

2. 修改APK生成路徑(臨時解決方案)

在app/build.gradle中添加:

android.applicationVariants.all { variant ->variant.outputs.all {outputFileName = "${applicationId}-${variant.versionName}.apk"}
}

3. 使用ADB強制安裝

通過命令行執行安裝:

adb install -t your_app.apk
# -t 參數允許安裝測試APK(臨時解決方案)

4. 檢查清單文件配置

在AndroidManifest.xml的標簽中添加:

android:testOnly="false"

5. 進階排查步驟

檢查構建變體:確保未意外選擇test或androidTest構建變體
依賴庫沖突:排查第三方庫是否包含testOnly標記

aapt dump badging your_app.apk | grep test-only
# 查看輸出是否為 "test-only='true'"

Gradle緩存清理

./gradlew cleanBuildCache

6. 版本適配方案

Android Gradle Plugin版本 解決方案

≥ 7.0 在gradle.properties添加:

android.injected.testOnly=false

≤ 4.1 使用testBuildType "debug"配置

典型錯誤日志分析

如果出現以下日志:

INSTALL_FAILED_TEST_ONLY
PackageInstallInfo{...} [CONTEXT service_id=0]

表明系統檢測到APK的testOnly屬性為true。可通過aapt工具驗證:

aapt dump badging app-debug.apk | grep testOnly

建議按照上述步驟依次排查,優先推薦方案1和方案4的組合使用。若問題仍未解決,可嘗試通過Build > Build Bundle(s)/APK(s) > Build APK生成正式簽名的APK進行安裝測試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73753.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NFC 碰一碰發視頻源碼搭建,支持OEM

一、引言 NFC(Near Field Communication)近場通信技術,以其便捷、快速的數據交互特性,正廣泛應用于各個領域。其中,NFC 碰一碰發視頻這一應用場景,為用戶帶來了新穎且高效的視頻分享體驗。想象一下&#x…

Python基礎語法全解析:從入門到實踐

Python作為一門簡潔高效、功能強大的編程語言,憑借其易讀性和豐富的生態系統,已成為編程領域的“明星語言”。本文將系統講解Python的核心語法,涵蓋變量、數據類型、控制結構、函數、模塊等核心概念,幫助讀者快速掌握編程基礎。 一…

TypeScript中的類型斷言(type assertion),如何使用類型斷言進行類型轉換?

一、什么是類型斷言? 類型斷言(Type Assertion)是 TypeScript 中一種顯式指定變量類型的方式,它告訴編譯器:“我比編譯器更清楚這個值的類型”。?這不是運行時類型轉換,而是編譯階段的類型聲明輔助機制。…

分區表和分表

分區表(Partitioning) 定義 分區表是將單個表的數據按照某種規則(如范圍、列表、哈希等)劃分為多個邏輯部分,每個部分稱為一個分區。數據仍然存儲在一個物理表中,但邏輯上被分割為多個分區。 特點 邏輯…

C++從入門到入土(八)——多態的原理

目錄 前言 多態的原理 動態綁定與靜態綁定 虛函數表 小結 前言 在前面的文章中,我們介紹了C三大特性之一的多態,我們主要介紹了多態的構成條件,但是對于多態的原理我們探討的是不夠深入的,下面這這一篇文章,我們將…

用Maven創建只有POM文件的項目

使用 mvn 創建一個僅包含 pom.xml 文件的父項目,可以借助 maven-archetype-quickstart 原型,然后移除不必要的文件,或者直接通過命令生成最簡的 pom.xml 文件。以下是具體操作步驟: 一、方法一:使用原型創建后清理 1…

Linux目錄理解

前言 最近在復習linux,發現有些目錄總是忘記內容,發現有些還是得從原義和實際例子去理解會記憶深刻些。以下是個人的一些理解 Linux目錄 常見的Linux下的目錄如下: 1. 根目錄 / (Root Directory) 英文含義:/ 是文件系統的根…

gitee AI使用

gitee AI使用 gitee AI使用 gitee AI使用簡介正文開始1. 安裝openai2. 測試2.1 不使用流2.2 使用流 2.3 使用curl工具 簡介 發現gitee 推出了個ai幫助多數人使用ai,突破算力和模型的壁壘,我就遵從開源精神,測試了下,希望可以幫助…

c++領域展開第十七幕——STL(vector容器的模擬實現以及迭代器失效問題)超詳細!!!!

文章目錄 前言vector——基本模型vector——迭代器模擬實現vector——容量函數以及push_back、pop_backvector——默認成員函數vector——運算符重載vector——插入和刪除函數vector——實現過程的問題迭代器失效memcpy的淺拷貝問題 總結 前言 上篇博客我們已經詳細介紹了vecto…

WPF 開發從入門到進階(五)

一、WPF 簡介與開發環境搭建 1.1 WPF 概述 Windows Presentation Foundation(WPF)是微軟推出的用于構建 Windows 桌面應用程序的強大 UI 框架。它融合了矢量圖形、動畫、多媒體等多種技術,能讓開發者創建出具有高度視覺吸引力和交互性的應用…

DICOM醫學影像數據訪問控制與身份驗證技術應用的重要性及其實現方法詳解

DICOM醫學影像數據訪問控制與身份驗證技術應用的重要性及其實現方法詳解 在現代醫療體系中,DICOM(數字成像和通信醫學標準)作為醫學影像數據的核心標準,扮演著至關重要的角色。隨著醫療信息化的深入發展,DICOM醫學影像數據的安全性和隱私保護成為醫療機構亟需解決的關鍵問…

植物知識分享論壇畢設

1.這四個文件直接是什么關系?各自都是什么作用?他們之間是如何聯系的? 關系與聯系 UserController.java 負責接收外部請求,調用 UserService.java 里的方法來處理業務, 而 UserService.java 又會調用 UserMapper.jav…

Business processes A bridge to SAP and a guide to SAP TS410 certification

Business processes A bridge to SAP and a guide to SAP TS410 certification

算法 之 ST表

文章目錄 區間最大值 ST表(Sparse Table)是一種高效處理靜態數據區間查詢的數據結構,主要的作用是用于快速查詢區間的最值,區間GCD,區間按位與或 在這里以區間最大值為例子說明st表的模版 總體的思想就是定義dp[i][j]表示下標為i長度為2^j的區間的最大值…

Deepseek X 文心智能體:諧音梗廣告創意大師

體驗鏈接 飛書文檔 一、引言 在當今競爭激烈的市場環境下,廣告創意對于產品或服務的推廣至關重要。諧音廣告以其獨特的語言魅力,能夠迅速吸引受眾的注意力并留下深刻印象。本智能體旨在利用 DeepSeek 模型強大的語言分析和推理能力,為用戶…

libilibi項目優化(2)視頻文件分塊上傳

第一版 文件分片上傳過程總結 整個文件分片上傳過程分為三個主要步驟:預上傳、分片上傳和獲取已上傳分塊信息。以下是每個步驟的詳細描述: 1. 預上傳(preUploadVideo) 功能:生成唯一的上傳 ID,并將文件…

TCP簡單鏈接的編程實現

TCP簡單鏈接的編程實現 本文主要介紹TCP應用層的編碼實現。 TCP是一種面向連接的、可靠的、基于字節流的傳輸層協議,它是互聯網協議套件(TCP/IP)中的核心協議之一,廣泛應用于需要可靠數據傳輸的場景,如:網…

使用Multiprocessing模塊創建子進程,需要放到__main__中

1 場景說明 在Python中,使用multiprocessing模塊創建子進程時,將創建子進程的代碼放在if __name__ __main__: 塊之外,如下面代碼: import multiprocessing import timedef test_func(name):print(f"子進程 {name} 開始運行…

描述<canvas>標簽的主要用途,如何在其上繪制簡單圖形?

大白話描述標簽的主要用途&#xff0c;如何在其上繪制簡單圖形&#xff1f; <canvas> 標簽的主要用途 <canvas> 標簽是 HTML5 中新增的一個標簽&#xff0c;它就像是一塊“畫布”&#xff0c;你可以在網頁上用它來繪制各種圖形、動畫、制作游戲等。簡單來說&…

【RHCE實驗】搭建主從DNS、WEB等服務器

目錄 需求 環境搭建 配置nfs服務器 配置web服務器 配置主從dns服務器 主dns服務器 從dns服務器 配置客戶端 客戶端測試 需求 客戶端通過訪問 www.nihao.com 后&#xff0c;能夠通過 dns 域名解析&#xff0c;訪問到 nginx 服務中由 nfs 共享的首頁文件&#xff0c;內容…