【问题标题】:My App Runs on Test Device But Can't Install It On Any Other Device我的应用程序在测试设备上运行,但无法在任何其他设备上安装
【发布时间】:2018-02-02 12:14:01
【问题描述】:

我正在尝试使用 Android Studio 创建一个 android 应用程序,并且我也使用 Firebase。

我的整个应用程序的问题是当我在我的测试设备上运行时

-"Samsung j7,Android 版本为 6.0.1,Marshmallow = API level 23"

一切正常,但是当我尝试将应用程序放到另一台设备上时

-“Oppo F1,ColorOS 3.0.0i 版,Android 5.1 版(我不太清楚这个API 级别)”

然后应用程序无法安装,并且我有一条消息说“安装失败” 真的不知道问题出在哪里:证书、安全性或其他...

当我创建“hello world”应用程序并执行与上述相同的操作时,一切正常。

设置中的未知来源也被启用

我的毕业生:

android {
compileSdkVersion 27
buildToolsVersion "27.0.2"
defaultConfig {
    applicationId "com.example.mcphil.avastus"
    minSdkVersion 18
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

当我开始创建应用程序时 我的最低 api 级别是 Jelly bean = api level 18

清单:编辑:对于清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mcphil.avastus">


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    android:name="MathsQuiz">
    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity" />
    <activity android:name=".SignupActivity" />
    <activity android:name=".ResetPasswordActivity" />
    <activity android:name=".ProfileActivity" />
    <activity android:name=".LibraryActivity" />
    <activity android:name=".QuizzesActivity" />
    <activity android:name=".DocumentActivity" />
    <activity android:name=".pdf.PDF_Activity" />
    <activity android:name=".quizzes.Quiz1Activity"/>
</application>

不知道我这边还需要什么信息,所以只要问我是否缺少所需信息的东西,希望有人能提供帮助。

非常感谢 我是编码新手。

编辑: 新的错误是这样的:

错误:任务 ':app:processDebugGoogleServices' 执行失败。 找不到与包名称“com.example.mcphil.avastus.Avastus”匹配的客户端

错误中最后一个文本中的 .Avastus 我试图找到它的位置。

【问题讨论】:

  • 你试过减少targetSdkVersion然后重新编译吗? manifest 中是否列出了您的应用所需的所有权限
  • 从菜单栏 Build>BuildApk(s) 然后获取并安装
  • 正在处理它,我只是对黄色车道说有这个 27.0.2 的新版本所以我升级到 27.0.2 感到恼火。
  • 我已经尝试将 targetSdkVersion 降低到 26.0.2 和 BuldApk ,清理项目,重建 Apk,仍然无法安装到其他设备,但在我的测试设备上还可以,我只使用 java代码 , , , 没有 Logcat 错误。 .顺便说一句,两个设备的未知来源都已启用

标签: android android-studio sdk installation device


【解决方案1】:

除非在运行 Android Studio 时连接到 PC,否则无法在其他设备上安装任何应用。

但是尝试生成一个签名的调试 APK 以便在其他设备上进行测试,它必须是签名的。出于安全原因,手机无法安装未签名的 Apk

【讨论】:

  • 我尝试了您的签名调试 Apk,还提供了密钥存储但仍然无法安装在其他设备中,现在我想我在 android studio 中进行了一些调整并收到此错误:错误:执行失败对于任务':app:processDebugGoogleServices'。 > No matching client found for package name 'Package Name' 我觉得Android Studio很敏感,
  • 嗨 avastus,您会检查清单中的“包”名称是否与 Gradle 中的 applicationId“com.example.mcphil.avastus”相同?如果您的应用程序,应用程序 ID 必须与包名称匹配。如果匹配,则问题只是 Google Service 依赖问题,您可以尝试在 Gradle 依赖中添加两个类路径
  • 如果您检查过,请回复评论,我可以写一个新答案,说明如何尝试向 Gradle 添加依赖项,但在提出其他建议之前我会先搜索一下
  • 是的,我已经检查过了,它们是一样的,我现在真的很害怕调整这个 android 工作室,我已经有很多代码,并在真实设备中多次尝试,它工作正常但这次为什么会这样。是的,你能给我一个指示吗?我也搜索过,但我还是很困惑
  • Shahin,我更新了上面的问题,我也输入了错误
【解决方案2】:

我希望这可行:

在 Android Studio 中,从项目面板转到 [app] > [build.gradle] 并打开 build.gradle

现在复制你的ApplicationID,例如

com.example.myApp

android {
  compileSdkVersion 25
  buildToolsVersion "25.0.3"
  defaultConfig {
    applicationId "com.example.myApp" // ***----- Copy (com.example.myApp)
    minSdkVersion 21
    targetSdkVersion 25
      ...
      ...
  }

现在打开浏览器,打开 [firebase.google.com],然后点击 [GO TO CONSOLE]

然后【新建项目】或【添加项目】

然后输入 [项目名称] 和 [项目 ID] 和 [您的国家/地区] - 您输入的任何名称和 ID 都可以

然后会打开一个页面,如下所示:单击 [Add FireBase to your Android App]

现在,这里是需要使用 [ApplicationId] 的地方

在 [Android 项目名称] 中输入您复制的 [ApplicationId]

然后输入包名 - - 任何包名都可以。然后点击【注册应用】

在下一页 --- 下载 Google-Service.json

下载完成后,点击[继续],然后点击[完成]

现在获取下载的 Json 文件,复制它,并且您必须将其粘贴到您的项目中,但您必须这样做两次。

一次来自 Android Studio,一次通常在 Windows 资源管理器中

首先,将其从Android Studio粘贴到[App]目录中,右键单击[App]并粘贴

当您在此处粘贴时,它会导致“OverRide”,并给您一个“IOExceptions”错误。

两者都很好 单击[Override] 和[Ok]。你很好

然后,复制你刚刚粘贴到 Android Studio 中的 Json,右键单击,复制。(从 android studio 中直接复制)

现在,将其粘贴到 Windows 资源管理器中的 [App] 目录中。粘贴和替换。 (例如,C:\Users\Dell... | 您的应用程序在哪里)

最后,在 Android Studio 中,转到 [文件] 并单击 [同步]

【讨论】:

  • 我的建议是将 Gradle ApplicationId 与 FireBase 项目名称再次匹配。我看到有人这样做并且它在一个测试应用程序上工作,但你需要知道开发 Android 应用程序时唯一的毁灭性结果是丢失你的签名密钥。无论如何,其他一切都可以修复
  • 非常感谢,我真的很感谢你的努力,顺便说一句,我做到了,现在以多种不同的方式多次,我按照你的步骤创建一个新的 Firebase 项目下载 json 文件并将其粘贴到目录和同步。但仍然出现错误,我用我现有的 firebase 帐户进行试验,并在项目设置中再次下载 json 文件并将其粘贴到我的应用程序的目录中仍然出现相同的错误,顺便说一下 json 文件中的项目名称是与 manifest 和 applicationID 相同,
  • 你是对的!我现在明白了,非常感谢!但我只想更新你的答案,以防万一..
  • Avastus,尝试创建一个健康的 FireBase 帐户,您应该可以开始了。
  • 更新答案随你喜欢,我会留下来,直到你尝试它,但我不得不离开。
【解决方案3】:

在此错误中:错误:任务“:app:processDebugGoogleServices”的执行失败。找不到与包名称“com.example.your.package.name”匹配的客户端

您可以按照 Shahin 的说明进行操作。

在我的情况下,在某些情况下,您需要从项目设置中的现有 firebase 项目重新下载 google-services.json

Project Settings Firebase

并将其复制到您的应用程序目录中,从您的 Android 工作室保存项目 - 粘贴/替换 -

然后

回到 android studio,转到 Tools>Firebase

Tools>Firebase

然后选择身份验证

Auth

然后将 Firebase 身份验证添加到您的应用

然后将您的应用连接到 Firebase

一旦所有设置和连接转到Build>Make Project

就是这样,

但是现在,我回到我上面提到的真正问题,我的应用程序只能在通过 USB 连接的指定设备上运行以进行真机测试,但应用程序仍然无法安装到其他设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    相关资源
    最近更新 更多