2

私はMac用のEclipseを使用しています。署名付き apk をエクスポートしようとすると、「Proguard がエラー コード 1 で返されました。コンソールを参照してください」というエラーが表示されます。

  • プロジェクトのルート フォルダーに「proguard-android.txt」と「project.properties」の 2 つのファイルがあります。
  • project.properties 内には次のものがあります。

    target=android-17 proguard.config=proguard-project.txt android.library.reference.1=../google-play-services_lib android.library.reference.2=../FacebookSDK

署名済み apk を作成しようとすると、他にも多くの警告が表示されます。

com.my.app.va.debug.ConfigureLog4j: can't find referenced class de.mindpipe.android.logging.log4j.LogConfigurator

com.my.app.va.debug.HockeyAppHelper: can't find referenced class net.hockeyapp.android.ExceptionHandler

私はすでにこれらの行を "proguard-android.txt" 内に入れていますが、エラーは続きます:

-keep public class de.mindpipe.android.logging.**
-dontwarn de.mindpipe.android.logging.**
-keep public class net.hockeyapp.**
-dontwarn net.hockeyapp.**

私は何が間違っているのでしょうか?

更新: ファイル名を「proguard-android.txt」から「proguard-project」に変更し、これを Proguard に追加したところ、「参照されたクラス」エラー メッセージが表示されなくなりました。

-dontwarn de.mindpipe.android.**
-keep public class de.mindpipe.android.**

-dontwarn net.hockeyapp.android.**
-keep public class net.hockeyapp.android.**

それにもかかわらず...これは実際の解決策ですか?それとも、問題を隠しているだけですか?

その他の警告は引き続き表示されます。

Warning: com.facebook.widget.UserSettingsFragment: can't find referenced method 'android.support.v4.app.FragmentActivity getActivity()' in class com.facebook.widget.UserSettingsFragment
Warning: there were 138 unresolved references to program class members.
4

1 に答える 1

0

proguard ファイル名は、Ec​​lipseを使用する場合はproject.propertiesで、Gradle または Android Studio を使用する場合は build.gradle で定義する必要があります。

通常、proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txtが含まれています。

次の情報も含める必要があります。

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 

http://developer.android.com/tools/help/proguard.htmlの公式情報。

その他の関連するスタックオーバーフローの議論:ログのみを削除するように proguard-project.txt ファイルを構成する方法とproguard-android.txt を自動的に生成する方法は?

于 2015-07-14T13:30:39.383 に答える