简体   繁体   English

android studio中生成的签名的.apk显示错误,不幸的是关闭

[英]generated signed .apk in android studio shows error Unfortunately close

I am going to generate signed apk from android studio and i am trying to decrease .apk file size.So from somewhere i got solution to use Progaurd and for that i have to make change in build.gradle file. 我要从android studio生成签名的apk,并试图减小.apk文件的大小。所以从某个地方我有了使用Progaurd的解决方案,为此我必须在build.gradle文件中进行更改。 The change is the make "minifyEnabled true" instead of "minifyEnabled false" . 更改是使“ minifyEnabled true”而不是“ minifyEnabled false” here is build.gradle file code 这是build.gradle文件代码

apply plugin: 'com.android.application'

1android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "com.rahu.createsomething"
    minSdkVersion 9
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),   'proguard-rules.pro'
      }
   }
}

 dependencies {
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile 'com.android.support:appcompat-v7:22.1.1'
}

Now the Question is When i Make "minifyEnabled true" i decrease my file size for 1.47 GB to 0.97 MB. 现在的问题是,当我使“ minifyEnabled为true”时,我将文件大小从1.47 GB减小到0.97 MB。 But when i run that apk file it shows error message "Unfortunately Close application". 但是,当我运行该apk文件时,它显示错误消息“不幸关闭应用程序”。

And when generate apk with the "minifyEnable false" then it generate 1.47 GB .apk file and it works fine. 并且当使用“ minifyEnable false”生成apk时,它将生成1.47 GB的.apk文件,并且可以正常工作。 But i want 0.97 MB apk so how can i generate it? 但是我想要0.97 MB apk,那么我怎么生成呢?

here is my error logcat message 这是我的错误logcat消息

07-08 23:18:21.983  29845-29845/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.AssertionError
        at com.abc.android.publish.i.b.a.bf.<init>(Unknown Source)
        at com.abc.android.publish.i.b.a.as.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.i.b.a.q.<init>(Unknown Source)
        at com.abc.android.publish.i.b.a.p.a(Unknown Source)
        at com.abc.android.publish.i.b.a.p.a(Unknown Source)
        at com.abc.android.publish.i.b.a.p.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.i.k.a(Unknown Source)
        at com.abc.android.publish.af.a(Unknown Source)
        at com.abc.android.publish.q.a(Unknown Source)
        at com.abc.android.publish.q.a(Unknown Source)
        at com.rahu.createsomething.CreateSomething.onCreate(Unknown Source)
        at android.app.Activity.performCreate(Activity.java:5283)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
        at android.app.ActivityThread.access$700(ActivityThread.java:150)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5283)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
        at dalvik.system.NativeStart.main(Native Method)

Can you put detailed stack trace...I guess the issue is due to proguard optimization. 您能否放置详细的堆栈跟踪信息...我想这是由于proguard优化引起的。

Sometimes if you use external library/jars proguard causes issues. 有时,如果您使用外部库/ jar,则proguard会导致问题。

Also if you are calling code (the classes referenced in the code are not referenced anywhere else) through reflection and that particular class has been removed by the proguard tool,you might face an exception at runtime. 同样,如果通过反射调用代码(代码中引用的类未在其他任何地方引用)并且该特定类已被proguard工具删除,则在运行时可能会遇到异常。

There are various ways of configuring proguard- http://developer.android.com/tools/help/proguard.html#configuring 有多种配置proguard的方法-http: //developer.android.com/tools/help/proguard.html#configuring

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM