【问题标题】:App won't run when apk is shared with friend与朋友共享 apk 时应用程序不会运行
【发布时间】:2017-11-18 06:23:24
【问题描述】:

我的 Android 应用在模拟器上运行良好,甚至在我使用 USB 电缆连接设备时也能正常运行。但是,当我生成 apk 文件并与他人共享时,该应用程序将无法运行。它在启动启动画面后崩溃。

这是我的 app/build.gradle:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId 'com.test'
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 2
        versionName "1.1"

        multiDexEnabled true

        def serverPropertiesFile = rootProject.file("server.properties")

        // Initialize a new Properties() object called keystoreProperties.
        def serverProperties = new Properties()

        // Load your keystore.properties file into the serverProperties object.
        serverProperties.load(new FileInputStream(serverPropertiesFile))


        buildConfigField("String", "HOST", serverProperties['SERVER_URL'])
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
        }
    }
    productFlavors {
    }
    lintOptions {
        abortOnError false
} } dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.swipelayout:library:1.2.0@aar'
    compile 'com.daimajia.androidanimations:library:1.1.2@aar'
    compile 'com.google.android.gms:play-services-maps:10.0.1'
    compile 'com.google.android.gms:play-services-gcm:10.0.1'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'com.google.code.gson:gson:2.8.2'
    compile 'com.android.support:recyclerview-v7:25.3.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
}

Manifest.xml:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--
     The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
     Google Maps Android API v2, but you must specify either coarse or fine
     location permissions for the 'MyLocation' functionality. 
-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

有什么帮助吗?

【问题讨论】:

  • 尝试禁用即时运行功能
  • 可能是权限问题。在棉花糖之上,您必须在运行时请求一些权限。你朋友的手机在哪个操作系统上运行?
  • 我也试过禁用。但是没用
  • 这里是list of dangerous permissions 的链接,这里是request permissions at runtime 的方法。如果没有运行时权限请求,您的应用将在棉花糖设备下正常工作,但会在棉花糖设备上或之上崩溃。
  • @Jacky 检查我的答案有解释和有用的链接

标签: android gradle android-gradle-plugin


【解决方案1】:

我认为您缺少 API 23 或更高版本的运行时权限

尝试为相机、位置和电话授予运行时权限。以下是添加运行时权限的示例。

https://developer.android.com/training/permissions/requesting.html

How to check Grants Permissions at Run-Time?

https://www.androidhive.info/2016/11/android-working-marshmallow-m-runtime-permissions/

要检查是否缺少运行时权限是问题转到电话Settings -> Apps -> Installed App -> Your App -> Permissions -> Allow Permissions 那里

【讨论】:

  • @Jacky 尝试添加运行时权限。要检查是否是问题转到电话设置 -> 应用程序 -> 已安装的应用程序 -> 您的应用程序 -> 权限 -> 在那里允许权限
  • 那里允许权限。
  • 如果权限被授予尝试再次打开应用程序
  • 部署目标是 API 24。这让我头疼吗?
  • @Jacky 可能不是。应用程序不会安装在 API 高于 24 的手机上。尝试将手机连接到 Android Studio 并登录。
【解决方案2】:

我认为您需要在 pro-guard 文件中添加一些类。例如,Gson 不能很好地处理混淆。要查看这是否真的导致了问题,请删除 minifyEnabled true

【讨论】:

    【解决方案3】:

    转到构建,然后单击生成/构建 apk。点击run生成的apk是针对同API级别的设备的。

    【讨论】:

      【解决方案4】:

      我认为您的 APK 版本有问题。检查您的移动 APK 版本和您的目标 APK 版本。当您使用 25.0.0 构建时,您的应用将无法运行低于 APK 版本 25 的版本

      【讨论】:

      • 如果是问题应用程序将不会被安装。所以这不是问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      相关资源
      最近更新 更多