###前提・実現したいこと
Androidアプリを開発しています。
2つに分離したモジュールの内、ひとつのモジュールをProGuardで難読化したのですが、ProGuardを有効にするとコンパイルエラーが発生します。
このエラーが発生する原因と解消方法を教えてください。
Androidアプリの開発初心者ですので用語の使い方など間違っている箇所があると思います。
不明点はご指摘いただけると助かります。
###発生している問題・エラーメッセージ
Error:(16, 18) エラー: シンボルを見つけられません シンボル: クラス <クラス名> 場所: クラス MainActivity
###該当のソースコード
プロジェクトは以下の様に"アプリ"と"モジュール"にプロジェクトを分離しています。
アプリはモジュールを参照している状態です。
- アプリ
- モジュール
上記のエラーはアプリのMainActicityでモジュールのクラスを呼び出している部分で発生しています。
build.grable は以下の様に定義しています。
apply plugin: 'com.android.library' android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' testCompile 'junit:junit:4.12' }
アプリ層とモジュール層のコードは以下の様になっています。
(実際のクラス名・パッケージ名とは異なります。)
- モジュール層(呼び出し元)
java
1package com.example.module; 2 3public class ModuleSample { 4 5}
- アプリ層(呼び出し側)
java
1package com.example.app; 2 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5 6// ここでコンパイルエラーが発生する。 7import com.example.module; 8 9public class MainActivity extends AppCompatActivity { 10 11 @Override 12 protected void onCreate(Bundle savedInstanceState) { 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main); 15 16 // ここでコンパイルエラーが発生する。 17 ModuleSample sample = new ModuleSample(); 18 } 19}
###試したこと
ProGuardを無効化するとコンパイルできるようになりました。