2017-03-25 65 views
6

我已將Android Studio更新爲新的Canary版本,並更新了我的gradle文件。當我通過run啓動我的應用程序,我得到以下錯誤:Android Studio Canary 2.4錯誤

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' 
+1

那是什麼'的,改進canary'渠道,修正錯誤..請報告! – Wizard

+0

@Wizard這樣做的鏈接? –

+0

好吧,看起來像一個錯誤,因爲你有一個錯誤'INSTALL_FAILED_TEST_ONLY'。確保你啓用**從設備上的未知來源**安裝 – Wizard

回答

0

我發現,在第一種情況下產生的SecurityException的原因。這是因爲在我的代碼中包含AdView。我試圖評論它,它的工作。我懷疑這是因爲只有包含AdView的活動纔會崩潰。

adb install問題仍然存在,雖然

相關問題