問題タブ [support-v4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Android Api 23 で廃止されたクラスを使用する
com.android.support:support-v4 を 23.2.1 にアップグレードしました。これは、Android 6.0 以降、実行時にアクセス許可を確認して要求する必要があるためです。アップグレードした後、これらすべてのエラー メッセージが表示されます
エラー:(48, 31) エラー: パッケージ android.support.v4.view が存在しません android.support.v4.view.PagerAdapter が存在しません。
そのため、古い Android サポート jar ファイルをプロジェクトの libs フォルダーに追加し直すと、
ActivityCompat.requestPermissions を解決できません。
いくつかの解決策を試しましたが、まだうまくいきません。すべてをサポートできる回避策はありますか?
ここに私のgradleファイルがあります。
android - クラス「android.graphics.drawable.RippleDrawable」が見つかりませんでした
私はサードパーティのライブラリを使用していDrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN);
ます。Android 5.0以降でアプリをテストすると、問題はなく、うまく機能しました.しかし、Android 4.4.4になると、例外がスローされました:
上記のスタック トレースを除いて、コンソールに次のようなエラー情報が表示されました。
そしてこれ:
もちろん、私は自分のプロジェクトで v4 サポート ライブラリをコンパイルしました :)
誰がこの問題に遭遇しましたか? 手伝ってくれてありがとう!
-------------------------------------------------- ----------------------------------------
更新 1:
これが NullPointerException の原因です:
android - Fragment.isAdded() は、support-v4:23.4.0 では以前のバージョンとは異なる動作をします
support-v4 バージョンを 23.1.1 から 23.4.0 にアップグレードしたときに、この問題に気付きました。
フラグメントを含む ViewPager を持つアクティビティ (FragmentActivity) があります。各フラグメントは、開始時に onCreate() で非同期タスクを起動して、いくつかの画像をダウンロードします。効率化のため、コールバックで isAdded() をチェックして、処理を続行する前に Fragment がアタッチされていることを確認しています。
バージョン 23.1.1 の support-v4 ライブラリを含めると、コードは期待どおりに機能します。ただし、23.4.0 に更新すると、 isAdded() はほとんどの場合 false を返すようで、現在のフラグメントでさえ非同期結果の処理を終了できません。
注: アルバムのページをめくるかどうかは問題ではありません。isAdded() を呼び出すたびに false が返されるようです。
以下の関連コード (注: この例では一部のコードが簡略化されています):
そして、ViewPager を含むそのアクティビティ (FragmentActivity)
それがこのバージョンのサポート ライブラリの問題なのか (願わくば)、この最新リリースで最終的に表面化した私のコードの誤りなのかはわかりません。前述したように、gradle ファイルのバージョンを交換しただけでは、上記のコードは v 23.1.1 では期待どおりに動作しますが、23.4.0 に変更すると失敗します。
考え?提案?
ありがとう!
java - Android プロジェクトのビルドは成功しましたが、実行は次のエラーで失敗しました: java.util.zip.ZipException: エントリが重複しています
AndroidスタジオとSDK、およびプロジェクトのグレードに応じたいくつかのパッケージ依存関係を更新しましたが、それ以来、依存関係間の非互換性が原因であると思われる多くの問題に直面しています。
調べてみると、多くの人が同じ問題を抱えており、それは珍しくありません。エラーのいくつかは解決しましたが、問題が次々と発生し、混乱しています。問題とその解決策を見つけるのを手伝ってくれることを願っています。
コードは新しい Android バージョンでうまく動作します! (少し奇妙です)そして、Android 21+でアプリをコンパイルして実行できます。しかし、21未満のAndroidバージョンで実行しようとすると、エラーが発生します。Android Studio 2 に移行する前は、すべて問題ありませんでした。
これが私が今得たエラーコードです:
問題: タスク ':transformClassesWithJarMergingForDebug' の実行に失敗しました。
com.android.build.api.transform.TransformException: java.util.zip.ZipException: 重複エントリ: android/support/annotation/WorkerThread.class
試してみてください: --stacktrace オプションを指定して実行し、スタック トレースを取得します。--info または --debug オプションを指定して実行し、より多くのログ出力を取得します。
プロジェクトグレードファイルは次のとおりです。
support-v4 の異なるバージョンに問題があることがわかりましたが、どれを除外すべきかわかりません。libsに「android-support-v4.jar」があります。
他の情報が必要な場合はお知らせください。
ありがとうございました。
android-studio - スタジオからサポート v4 ライブラリを除外するにはどうすればよいですか?
FAILURE: ビルドは例外で失敗しました。
- 問題: タスク ':transformClassesWithJarMergingForDebug' の実行に失敗しました。
com.android.build.api.transform.TransformException: java.util.zip.ZipException: 重複エントリ: android/support/v4/content/Loader$OnLoadCompleteListener.class
build.gradle ファイル内のコード
android - Androidサポートライブラリを変更できる方法でインポートするにはどうすればよいですか?
Android Studio でViewPagerクラス自体を変更したい。現在、ライブラリの依存関係として support-v4 ライブラリがありますが、Android Studio では外部ライブラリを直接編集できないことがわかっています。
試行 1: プロジェクト内の java.android.support.v4.view パッケージ内に ViewPager をコピーして貼り付けようとしました。修正してテストしたところ、修正されたものではなくViewPagerの標準機能を表示していたため、動作していないようでした。
試行 2:サポート ライブラリと区別するために、パッケージ名を com.example.view に変更しようとしました。ViewPager の一部の機能は適切なパッケージ名に依存しているため、うまく機能せず、ClassCastException などのエラーが発生しました。
試行 3: ViewPager を、settings.gradle に含め、「app」モジュールの依存関係として追加した「lib」という新しく追加されたモジュールに入れようとしました。どちらも機能していないようでした。
私が試していないのは、support-v4 gradle 依存関係を取り除き、代わりにプロジェクト内のソース コード全体をコピー アンド ペーストすることでした。ViewPager クラスをオーバーライドするだけで、support-v4 ライブラリを最新の状態に保ちたいので、これはやりたくないです。(また、ソース コードの最新バージョンを入手する方法もわかりません。主要な API リリースごとにオープン ソースしか公開していないと聞いています。)
ここから何ができますか?前もって感謝します。