2016-04-08 5 views
1

私はAndroidでデバッガを実行したいが、私の問題はデバッグビルドでビルドしている。私はproguardを持っている。この理由は、愚かな65Kメソッドの制限です。私はproguardを使い、メソッドを減らすのを助けました。これは私を43Kのメソッドに戻しますが、今はIDEにあります。IDEのすべてのブレークポイントが到達不能なコードというエラーで赤いXに変わるので、コードをステップ実行することはできません。デバッガを閉じると、ブレークポイントは正常に戻ります。これを稼働させるためにビルドグラブルプロガードで何かする必要があるのですか?AndroidスタジオでProguardを使ってDebbugerを実行

buildTypes { 
    debug { 
     debuggable true 
     minifyEnabled true 
     shrinkResources false 
     zipAlignEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' 
     signingConfig signingConfigs.debug 
    } 
    release { 
     minifyEnabled true 
     shrinkResources true 
     signingConfig signingConfigs.release 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-samsung.txt' 
    } 
} 
+0

あなたは未使用のライブラリを持っていますか?あなたの依存関係は何ですか?あなたのライブラリの未使用部分の一部を剥がすことはできますか?あなたのサイズを減らすのを手伝いたい! – ApolloSoftware

+0

たくさんのサードパーティーのものは無駄なものになってしまいました。 – JPM

+0

同じ問題がありました。 65Kを超えるメソッドカウントを送信した私たちの犯人はGoogleプレイでした。私たちは実際に古いバージョンのgoogle playを使用しなければなりませんでした。 APKをいくつかの独立したモジュールコンポーネントに分割する必要があります。 – ApolloSoftware

答えて

2

あなたのProGuardの設定にはおそらくいくつかの句がありません。私はあなたがこの必要推測

-keepattributes SourceFile,LineNumberTable 

をソースファイルと行番号テーブルの名前(名前が示すように)をそれは維持されます。実際には、この句は、リリースのためにも使用してください。なぜなら、スタックトレースなしで矛盾のないスタックトレースを行うことはできないからです。

とデバッグのためには、この追加条項持って良いことだ:

-keepattributes LocalVariableTable,LocalVariableTypeTable 

ローカル変数名を維持します。

代わりに、デバッグのためにこれらの句を(代わりに、または前の節以外)の使用を検討することができます

-dontoptimize 
-dontobfuscate 
関連する問題