Подписанный APK не работает, но отладочная версия работает нормально - PullRequest
0 голосов
/ 19 ноября 2018

Я экспортировал свою игру Unity в Android Studio, потому что я использовал слишком много файлов DEX (из-за библиотек рекламной сети).Я могу собрать и запустить отладочную версию без каких-либо проблем.Я могу создать подписанную выпущенную версию и загрузить ее в playstore, но игра вылетает при запуске .Logcat говорит:

FATAL EXCEPTION...
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/gson/Gson

At [java code from an ad network library]

Я не использую proguard, и настройки между отладкой и выпуском идентичны, за исключением того, что для отладки и отладки Jni установлено значение false в выпуске.Область зависимостей - Внедрение для всех (также пробовал API без разницы).

Некоторые похожие вопросы по SO говорили о том, чтобы очистить проект и восстановить его, но это ничего не сделало для меня.Я не уверен, что еще попробовать.Похоже, библиотеки по какой-то причине не добавляются в подписанную сборку релиза, но я не знаю почему.

РЕДАКТИРОВАТЬ:

Gradle ниже в соответствии с запросом:

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
   repositories {
      jcenter()
      google()
   }

   dependencies {
      classpath 'com.android.tools.build:gradle:3.2.1'
   }
}

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
       google()
   }
}

apply plugin: 'com.android.application'

dependencies {
   api fileTree(include: ['*.jar'], dir: 'libs')
   api 'com.android.support:multidex:1.0.3'
   implementation(name: 'com.android.support.exifinterface-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-compat-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-core-ui-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-core-utils-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-fragment-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-media-compat-26.0.1', ext: 'aar')
   implementation(name: 'com.android.support.support-v4-26.0.1', ext: 'aar')
   implementation(name: 'com.google.android.gms.play-services-base-11.0.4', ext: 'aar')
   implementation(name: 'com.google.android.gms.play-services-basement-11.0.4', ext: 'aar')
   implementation(name: 'com.google.android.gms.play-services-games-11.0.4', ext: 'aar')
   implementation(name: 'com.google.android.gms.play-services-nearby-11.0.4', ext: 'aar')
   implementation(name: 'com.google.android.gms.play-services-tasks-11.0.4', ext: 'aar')
   implementation(name: 'play-services-ads-11.0.4', ext: 'aar')
   implementation(name: 'play-services-ads-lite-11.0.4', ext: 'aar')
   implementation(name: 'play-services-gass-11.0.4', ext: 'aar')
   implementation(name: 'play-services-location-11.0.4', ext: 'aar')
   api project(':adcolony')
   api project(':appodeal')
   api project(':common_lib')
   api project(':inmobi')
   api project(':native_plugins_lib')
   api project(':ogury')
   api project(':voxelbusters_utility_lib')
}

android {
   compileSdkVersion 28
   buildToolsVersion '28.0.3'

   defaultConfig {
      minSdkVersion 16
      targetSdkVersion 28
      targetSdkVersion 28
      versionCode 10
      versionName "10"
      applicationId '*MY APP ID HERE*'
      multiDexEnabled true
   }

   lintOptions {
      abortOnError false
      disable 'MissingTranslation'
      checkAllWarnings false
      checkReleaseBuilds false
      ignoreWarnings true       // false by default
      quiet true                // false by default
   }

   aaptOptions {
      noCompress '.unity3d', '.ress', '.resource', '.obb'
   }



    signingConfigs {
        release {
            storeFile file('*KEYSTORE PATH HERE*')
            storePassword '*PASSWORD*'
            keyAlias '*My KEY ALIAS*'
            keyPassword '*MY KEY PASSWORD*'
        }
    }
   buildTypes {
      debug {
         minifyEnabled false
         useProguard false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
         jniDebuggable true
         signingConfig signingConfigs.release
      }
      release {
         minifyEnabled false
         useProguard false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'

         signingConfig signingConfigs.release
      }
   }

}

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

В зависимости от файла Gradle добавьте

implementation 'com.google.code.gson:gson:2.8.5'

Также добавьте

mavenCentral()

в репозитории.

Не уверен, почему это не проблема вОтладка, но это проблема в выпуске.Я предполагаю, что в одной из библиотек объявлений есть код, который использует GSON с флагом выпуска.

0 голосов
/ 19 ноября 2018

Если вы генерировали SignAPK, то ->.
Для версии RELEASE: в Android Studio Terminal

keytool -list -v -keystore "key_store_path" -alias "key_alias_name"

Это даст вам SHA1, SHA256, MD5.Измените свой SHA1 с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...