0

私はプレイストアにアップロードする必要がある署名付きAPKを生成しています。私が持っている問題は、私が使用しているマップはカスタムスタイルを使用しており、私はRes>rawフォルダからカスタムスタイルを参照しているということです。デバッグ可能なAPKを生成する/携帯電話でアプリケーションを実行すると、R.raw.mapstyle_grayscaleファイルを取得できます。私が署名したAPKを生成しようとすると、私はエラーを取得するError:(936, 98) error: cannot find symbol variable mapstyle_grayscale署名付きAPKのリソースファイルがありません

私のコードは次のようになります。

Boolean success = false; 
int map_version = manager.getMapVersion(this); 
switch (map_version){ 
    case 0: 
     break; 
    case 1: 
     success = googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_grayscale)); 
     break; 
    case 2: 
     success = googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_night)); 
     break; 
    case 3: 
     success = googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_retro)); 
     break;  
} 

if (!success) 
    Log.e("Maps", "Style parsing failed."); 
else 
    Log.i("Maps","Style parsing successful"); 

答えて

0

あなたbuild.gradleファイルを確認してください、あなたminifyEnabledshrinkResourcestrueに設定されているかどうかを確認。 minifyEnabledshrinkResourcestrueに設定されている場合は、リリースAPKを生成している間に未使用のリソースを削除します。通常、コードから参照されるリソースは未使用リソースとして検出され、問題が発生します。

あなたが保持するか破棄し、<resources>タグを使用して、プロジェクト内のXMLファイルを作成し、tools:discard属性に破棄するtools:keep属性と各リソースに保つために、各リソースを指定したい特定のリソースがある場合。どちらの属性も、コンマ区切りのリソース名のリストを受け入れます。アスタリスク文字はワイルドカードとして使用できます。詳細はcheck hereをご覧ください。

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*" 
    tools:discard="@layout/unused2" /> 

Developers guide for androidには、リソースの縮小に関する詳細があります。

+0

minifyEnabledがfalseに設定されています。shrinkResourcesもfalseで、これをtrueに設定して上記のXMLを追加しようとしましたが、生成されるエラーは同じです。 – user145490

+0

'build.gradle'と' proguard-rules.pro'を入れてください。 –

関連する問題