【问题标题】:Installing APK not working, but deploying from Android studio works安装 APK 不起作用,但从 Android Studio 部署有效
【发布时间】:2017-09-08 09:05:03
【问题描述】:

编辑

APK 是一个有问题的签名的,而直接从 android studio 安装没有问题。 (仅使用 APK)。

在完成应用程序开发后,我尝试生成一个 APK 并给朋友测试;他说它不起作用(无法安装)。所以我用 Android 6.0.1 抓住了手机 Motorolla 并尝试从 Android Studio 中的 Android Monitor 调试问题,这就是那里的错误:

无法解析包文件android

然后我在我用来测试的同一部手机上尝试了相同的 APK(Samsung J3 with 5.1.1 Android 版本)并在 Android 监视器的日志中得到以下错误:

解组时找不到类: com.android.packageinstaller.InstallFlowAnalytics

我以前从未遇到过这个或类似的东西,谷歌了一下,并试图在 SOF 上找到答案,发现几个答案都没有。

  • 禁用 proGuard
  • 将 android:extractNativeLibs="true" 添加到清单
  • 增加/减少 SDK 版本

正如我所说,这些都不起作用,有什么想法吗?

这是我的清单和我的 Gradle 文件:

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="my.package.myapp">

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

    <application
        android:icon="@drawable/ice_launder"
        android:label="@string/app_name"
        android:roundIcon="@drawable/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name="my.package.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="my.package.MoreLikeThisActivity" />
        <activity android:name="my.package.SearchResultActivity" />
        <activity android:name="my.package.LastResultsActivity" />
        <activity android:name="my.package.CompanyDetailsActivity" />
        <activity android:name="my.package.OnboardingActivity"/>
    </application>

</manifest>

分级

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
        applicationId "my.package.myapp"
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
repositories {
    mavenCentral() // jcenter() works as well because it pulls from Maven Central
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.code.gson:gson:2.8.1'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.github.bumptech.glide:glide:4.0.0'
    compile 'com.github.navasmdc:MaterialDesign:1.5@aar'
    compile 'com.ogaclejapan.smarttablayout:library:1.2.1@aar'
    testCompile 'junit:junit:4.12'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
}

【问题讨论】:

  • @IntelliJAmiya 我没有最大 sdk,正如我所说,我尝试了这个选项。
  • 您是否使用 Build>Build APK 选项生成了 apk?
  • @Nischal 我建了一个签名的

标签: android android-studio package-managers


【解决方案1】:

只需通过 Build >Build APK 构建您的项目

在使用签名 apk 时,请确保您已选中复选框 v1 和 v2

【讨论】:

  • 您是否激活了从“未知来源”安装。在设置中@YamenNassif
  • 我对此不确定:- 将您的项目复制到具有不同名称的其他位置并尝试从新位置重新构建它
  • 它没有帮助。
  • 签名的apk是否有同样的问题
  • 只需通过 Build >Build APK 构建您的项目
【解决方案2】:

如果您正在生成签名的 apk,您需要检查两个签名版本: V1(Jar Signature) 和 V2(Full Apk Signature),以便您的 apk 将在您在 build.gradle 文件中定义的所有具有 api 级别的设备上运行。

你可以参考这个: https://source.android.com/security/apksigning/v2.html#verification

在 Android 7.0 中,APK 可以根据 APK 签名进行验证 方案 v2(v2 方案)或 JAR 签名(v1 方案)。旧平台 忽略 v2 签名,仅验证 v1 签名。

【讨论】:

    【解决方案3】:

    清理项目,使缓存无效并重新启动对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 1970-01-01
      • 2013-05-20
      相关资源
      最近更新 更多