2

Я получаю следующую ошибку, когда пытаюсь сгенерировать подписанный apk с включенной proguard.Не удалось сгенерировать подписанный apk с proguard

Error:Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef 
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. 
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.</li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes. 

Это то, что я использую/делает:

  1. Android Studio версии 2.2
  2. стыковые услуги 9.6.1
  3. proguard-rules.pro

    • dontwarn okio.
    • dontwarn retrofit2.Platform$Java8
    • keep public class com.google.android.gms.
    • dontwarn com.google.android.gms.
    • keepattributes InnerClasses,EnclosingMethod
  4. Gradle (приложение)

    defaultConfig { 
        applicationId "com.something.something" 
        minSdkVersion 15 
        targetSdkVersion 23 
        versionCode 3 
        versionName "3.0" 
    
        // Enabling multidex support. 
        multiDexEnabled true 
    
        testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner" 
    } 
    buildTypes { 
        release { 
         minifyEnabled true 
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
        } 
    } 
    productFlavors { 
    } 
    
  5. библиотеки, которые я использую:

    • com.radiusnetworks:proximitykit-android:[email protected]
    • com.squareup.retrofit2:retrofit:2.0.2
    • com.google.firebase:firebase-messaging:9.6.1

ответ

0

Исходя из этого SO answer, приведенный ниже код должен работать до тех пор, пока вы не нужны специальные настройки Proguard.

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 
    } 
} 

Если вы делаете, используйте оригинальную proguardFiles запись и создать файл /Users/franek/Documents/Android_Studio_Melange/app/proguard-rules.txt затем поместить свои собственные правила в этом файле.

Этот thread также может помочь. Добавьте следующие строки в файл proguard-rules.pro, чтобы решить проблему неспособности создать подписанный APK с помощью Proguard (Minify Enabled = true).

Keep класс org.apache.http. **
Keep класс android.net.http. **
dontwarn com.google.android.gms. **

+0

Однажды мне пришлось set minifyEnabled = false для моей работы! – Eenvincible

Смежные вопросы