我的应用程序在测试设备上运行但无法安装在任何其他设备上

My App Runs on Test Device But Can't Install It On Any Other Device

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

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

-"Samsung j7, Android version is 6.0.1, Marshmallow = API level 23"

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

-"Oppo F1 , ColorOS version 3.0.0i, Android version 5.1(I don't really know the API level of this)"

然后应用程序无法安装,我有一条消息说 "Installation Failed" 真的不知道是什么问题:证书、安全性或其他问题...

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

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

我的gradle:

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 等级是果冻豆 = api 等级 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>

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

非常感谢 我是编码新手。

编辑: 新错误是这样的:

Error:Execution failed for task ':app:processDebugGoogleServices'. No matching client found for package name 'com.example.mcphil.avastus.Avastus'

错误中最后一个文本中的 .Avastus 我正在尝试找到它的来源。

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

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

我希望这有效:

在 Android 工作室中,从项目面板转到 [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 都可以

然后会打开一个页面,如下所示:单击 [将 FireBase 添加到您的 Android 应用程序]

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

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

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

在下一页 --- 下载 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 中,转到 [文件] 并单击 [同步]

出现此错误:错误:任务“:app:processDebugGoogleServices”执行失败。找不到包名称 'com.example.your.package.name'

的匹配客户端

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

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

Project Settings Firebase

并将其复制到您的应用程序目录中,其中保存的项目来自您的 Android studio -paste it/replace-

然后是

返回 android 工作室,转到工具>Firebase

Tools>Firebase

然后 select 身份验证

Auth

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

然后将您的应用连接到 Firebase

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

就是这样,

But now, Im back to my real problem I mentioned above, My app only run on specified device connected via usb for real device test but still the app failed to install to the other devices.