我的应用程序不适用于棉花糖,但适用于牛轧糖



我是Android开发的新手。我使用安卓工作室开发了一个应用程序。问题是,在生成签名的APK后,当我尝试在带有MARSHMALLOW的Android设备上安装该应用程序时,它没有安装,显示错误消息"无法安装应用程序"消息,但它安装在带有牛轧糖的Android设备上,而是我将minSDKVersion设置为19。

这是我的清单文件

    <?xml version="1.0" encoding="utf-8"?>
<manifest
  xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.adityakumarsingh.arduinobot"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk
    android:minSdkVersion="19"
    android:targetSdkVersion="26" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:screenOrientation="portrait"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".WelcomeActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Splash"
        android:screenOrientation="portrait"
        android:theme="@style/SpalshTheme">
    </activity>
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"></activity>
    <activity
        android:name=".Accelerometer"
        android:parentActivityName=".MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    <activity
        android:name=".BluetoothConnection"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme" />
    <activity
        android:name=".GameMode"
        android:parentActivityName=".MainActivity"
        android:screenOrientation="portrait">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    <activity
        android:name=".About"
        android:parentActivityName=".MainActivity"
        android:screenOrientation="portrait">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    <activity
        android:name=".Voicerecog"
        android:parentActivityName=".MainActivity"
        android:screenOrientation="portrait">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
</application>
</manifest>

这是我的构建文件

    apply plugin: 'com.android.application'
android {
  compileSdkVersion 26
  buildToolsVersion "26.0.2"
  defaultConfig {
      applicationId "com.example.adityakumarsingh.arduinobot"
      minSdkVersion 19
      targetSdkVersion 26
      versionCode 1
      versionName "1.0"
               }
    }
 repositories {
     mavenCentral()
     mavenLocal()
               }
  dependencies {
          implementation fileTree(dir: 'libs', include: ['*.jar'])
          implementation 'com.android.support:appcompat-v7:26.1.0'
          implementation 'com.android.support.constraint:constraint-
          layout:1.0.2'
          compile 'io.github.controlwear:virtualjoystick:1.8.0'
          compile 'com.github.markushi:circlebutton:1.1'
          compile 'de.hdodenhof:circleimageview:2.2.0'
          implementation 'com.android.support:design:26.1.0'
            }

怎么办?任何帮助将不胜感激。谢谢

好的,

主要是导致问题的签名。尝试在对 apk 进行签名时使用 v2 加 v1 签名,而不仅仅是任何一个签名。当我刚刚使用 v2 方法时,我看到了此错误。添加 v1 签名会有所帮助。

V2 签名对模块进行签名,并适用于牛轧糖等。它不适用于旧版本的安卓,因此您还必须使用 v1 进行完整的 apk 签名。这将允许旧版本使用 v1 进行验证来安装它,而牛轧糖及以上版本仍应使用 v2。同时使用两者。有关此内容的详细信息可以在他们的网站上找到:

https://source.android.com/security/apksigning/v2

还要确保没有任何已安装的apk与您尝试安装的版本号相同。如果已安装并且版本号相同,它将失败。

最新更新