android.support.v7.appcompat v21 を使用する Samsung 4.2.2 デバイスには大きな問題があります。
https://code.google.com/p/android/issues/detail?id=78377
この問題を回避するために、.m2repository から v21 appcompat aar を取得することを考えました。
- appcompat-v7-21.0.0.aar を解凍します
- jarjar を使用して、ルール付きの classes.jar を処理します (ルール android.support.** android.support.@1)
- classes.jar を再パッケージ化された classes.jar に置き換えます
- appcompat-v7.21.0.0.aar を圧縮
- 再パッケージ化された aar を手動で build.gradle (compile(name:'appcompat-v7-21.0.0', ext:'aar') に、build.gradle リポジトリ セクションの libs フォルダーの flatDir と共に含めます)。
問題は、再パッケージ化された aar でコンパイルすると、マニフェストのマージから FileNotFoundException が発生することです。だから、私がやっていることさえ可能かどうか、可能であれば私のエラーが何であるかを判断しようとしています.
これが私が得るエラーです:
エラー: タスク ':app:processDebugManifest' の実行に失敗しました。
com.android.manifmerger.ManifestMerger2$MergeFailureException: java.io.FileNotFoundException: app/build/intermediates/exploded-aar/appcompat-v7-21.0.0/AndroidManifest.xml (そのようなファイルまたはディレクトリはありません)
編集:
パス app/build/intermediates/exploded-aar/appcompat-v7-21.0.0/ を見ると、 AndroidManifest.xml が確実に存在します。