Android Studio 金丝雀 2.4 错误

标签 android

我已将 Android Studio 更新到新的 Canary 版本,并更新了我的 gradle 文件。当我通过 run 启动我的应用程序时,出现以下错误:

Process: io.github.siddharthvenu.saltanalysis, PID: 23244
java.lang.SecurityException: Signature check failed for io.github.siddharthvenu.saltanalysis
    at android.os.Parcel.readException(Parcel.java:1915)
    at android.os.Parcel.readException(Parcel.java:1861)
    at com.google.android.gms.common.internal.zzv$zza$zza.zza(Unknown Source:41)
    at com.google.android.gms.common.internal.zzf.zza(Unknown Source:0)
    at com.google.android.gms.internal.zzzf$zzc.zzxQ(Unknown Source:0)
    at com.google.android.gms.internal.zzzf$zzf.run(Unknown Source:0)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at com.google.android.gms.internal.zzabx.run(Unknown Source:7)
    at java.lang.Thread.run(Thread.java:764)

编辑:我发现上面的错误是由于Android的AdView引起的。不知何故,在我的应用中加入广告会导致它崩溃。

我想这可能是因为我没有签署 apk,所以我签署了它 (debug),然后尝试使用 adb install 命令安装它。我得到以下输出:

Failed to install alpha_test_006.apk: Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

我的AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="io.github.siddharthvenu.saltanalysis">

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

    <application
        android:allowBackup="true"
        android:hardwareAccelerated="false"
        android:icon="@mipmap/ic_material_chemical"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="AllowBackup">
        <activity android:name=".HomeActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".RadicalListActivity"
            android:parentActivityName=".HomeActivity"
            android:theme="@style/AppTheme.TranslucentActionBar"
            android:screenOrientation="sensorPortrait"
            tools:targetApi="jelly_bean" />
        <activity
            android:name=".DisplayRadicalActivity"
            android:parentActivityName=".RadicalListActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            tools:targetApi="jelly_bean" />
        <activity
            android:name=".GroupSeparationActivity"
            android:parentActivityName=".HomeActivity"
            android:screenOrientation="sensorLandscape"
            tools:targetApi="jelly_bean" />
        <activity
            android:name=".LongProcedureActivity"
            android:label="Long Procedure"
            tools:targetApi="jelly_bean"/>
    </application>

</manifest>

我的build.gradle:app:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 'android-O'
    buildToolsVersion '26.0.0-rc1'

    def versionPropsFile = file('version.properties')
    def code = 1
    if (versionPropsFile.canRead()) {
        Properties versionProps = new Properties()

        versionProps.load(new FileInputStream(versionPropsFile))
        List<String> runTasks = gradle.startParameter.getTaskNames();
        def value = 0
        for (String item : runTasks)
            if (item.contains("assembleRelease")) {
                value = 1
            }
        code = versionProps['VERSION_CODE'].toInteger() + value

        versionProps['VERSION_CODE'] = code.toString()
        versionProps.store(versionPropsFile.newWriter(), null)

        defaultConfig {
            applicationId "io.github.siddharthvenu.saltanalysis"
            minSdkVersion 15
            targetSdkVersion 'O'
            versionCode code
            versionName "1.0 Alpha"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    } else {
        throw new FileNotFoundException("Could not read version.properties!")
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig getSigningConfig()
            def str_ver
            if ((int) (code / 100) != 0) {
                str_ver = String.valueOf(code)
            } else if ((int) (code / 10) != 0) {
                str_ver = "0" + String.valueOf(code)
            } else {
                str_ver = "00" + String.valueOf(code)
            }
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    output.outputFile = new File(output.outputFile.parent,
                            output.outputFile.name.replace(output.outputFile.name, "alpha_test_" + str_ver + ".apk")
                    )
                }
            }
        }
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    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.0.0-alpha1'
    compile 'com.android.support:cardview-v7:26.0.0-alpha1'
    compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
    compile 'com.android.support:design:26.0.0-alpha1'
    compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar-abc:3.1.2'
    compile 'com.google.firebase:firebase-core:10.0.1'
    compile 'com.google.firebase:firebase-ads:10.0.1'
    compile 'com.jaredrummler:material-spinner:1.1.0'
    compile 'com.google.code.findbugs:jsr305:2.0.1'

    testCompile 'junit:junit:4.12'
    compile files('libs/YouTubeAndroidPlayerApi.jar')
}

apply plugin: 'com.google.gms.google-services'

最佳答案

我找到了第一种情况产生SecurityException的原因。这是因为在我的代码中包含了一个 AdView。我试图将其注释掉,但它奏效了。我怀疑这是因为只有包含 AdView 的 Activity 崩溃了。

adb install 问题仍然存在

关于Android Studio 金丝雀 2.4 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43012401/

相关文章:

调用 takeTurn() 的 Android TurnBase Multiplayer 不会生成 onTurnBasedMatch Received()

android - FragmentActivity 操作栏选项菜单

java - Android 中 LocationManager 的位置返回 null

Android:从SD卡中文件的Uri获取文件路径

java - 以编程方式重新安装应用程序 apk 而无需下载

android - Flutter RTL AppBar 图标位置

java - Android: 编译错误Util.toByteArray(取自例子)

java - ActionBarActivity 无法解析为类型,Jar 不匹配 : Eclipse

android - Kotlin 与 Java : What to choose when starting a new Flutter project?

Android Studio 3.0.1 使应用程序变得迟钝和缓慢