問題タブ [kotlin-android-extensions]
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.
android - Kotlin Android 拡張機能と保持フラグメント
プロジェクトでKotlin Android 拡張機能を使用していますが、理解できない動作に遭遇しました。このコードを使用して、フラグメントをアクティビティに保持します。
これは保持されFragment
ます:
およびその XML レイアウトhello.xml :
すべてが期待どおりに機能します – Hello world!text_view.setText()
が表示されます。初回起動時の画面。ただし、画面を回転させると機能しません。null 可能ではなく、いくつかのビューを参照する必要があるため、これは奇妙です。フラグメントを削除してそのままにしておくと、この問題が消えるたびに再作成されます。この問題の原因は何ですか?text_view.setText()
text_view
setRetainInstance(true)
android - Varargs Kotlin Java 相互運用が正しく機能しない
makeSceneTransitionAnimation には、2 つの静的関数があります。
と
最初の関数呼び出しは Kotlin で適切に機能しますが、2 番目の関数を呼び出すと、これらの呼び出しは両方ともエラーを返します
と
これを機能させる適切な方法はありますか、それとも相互運用の問題ですか?
編集 同じクラスを使用していることを確認するために変更を追加しました
現在のコンパイラ エラー:
そしてもう一つ
現在のコンパイラ エラー:
android - エラー: タスク ':app:clean' の実行に失敗しました。ファイルを削除できません
Android Studio Gradle プロジェクト (主に Kotlin コードを含む) を再構築しようとしていますがUnableToDeleteFileException
、クリーニング/再構築プロセス中にスローされ始めました:
これは、プロジェクトのパッケージ構造を変更しようとした後に発生し始めました。残念ながら、Android Studio を使用してリファクタリングするのではなく、ソース フォルダーの名前を変更して移動することでこれを行いましたが、これは悪い考えでした。
私は一日中この問題の解決策を探していましたが、これらは役に立たなかったものです:
- Gradle 同期を実行します。
- Java JRE および Java SDK の再インストール。
- Android Studio (1.4) の最新バージョンを再インストールします。
- 以前の AS バージョン (1.3) にロールバックします。
- AS キャッシュを無効にして再起動します。
- プロジェクト ディレクトリのディレクトリ
gradle
とディレクトリを削除します。.gradle
.gradle
ユーザー ディレクトリのディレクトリを削除します。gradlew clean
AS 端末から実行します。- ソースを新しいプロジェクトに手動でコピーする (プロジェクト間で何らかの形で保持されるのは奇妙です...)
私が試して少し成功したことはありますが、エラーが再び発生する前に、もう一度クリーンアップと再構築を実行できます。
- AS を閉じ、ビルド ファイルを手動で削除し、再度開きます。
- ASの
java.exe
実行中にプロセスを強制終了します (これは技術的には毎回行うことができますが、面倒であり、ビルド プロセスが遅くなります)。
そのため、Java プロセスをコンパイルすると、何らかの理由でビルド ファイルがロックされる可能性があるようですが、それは Kotlin にも関係している可能性があります。私が取り組んでいる (より成熟した) Java Android プロジェクトがありますが、クリーニング時にこのエラーを再現することはできません。私のKotlinプロジェクトでのみ発生するようです。
アップデート:
この問題は Kotlin Android プラグインが原因であることがわかりました。apply plugin: 'kotlin-android'
モジュールのbuild.gradle
ファイルから削除すると問題はなくなり、再挿入すると元に戻ります。これについての洞察を自由に提供してください。
更新 2:
最後の更新が原因ではありません。プロジェクトに Kotlin ファイルが含まれていると、再構築とクリーニングが失敗することがわかりました。すべての Kotlin ファイルが削除されたとしても、バックグラウンドの Java プロセスが強制終了されるまで失敗し続けます。つまり、ビルド ファイルに何らかのロックがかかることを意味します。バグを再現するための詳細と手順を記載したバグをここに送信しました: KT-9440
android - Android ライブラリは kotlin をコンパイルできません
私のプロジェクトには と の 2 つのプロジェクトがmain project
ありlibrary project
ます。
main project
依存library project
関係。
kotlin
今は両方使いたいと思っています。私はに追加common rx extension code
しましたlibrary project
:
そして、私はこの関数を my で呼び出しますmain project
:
ビルドに失敗しました:
LoginPresenter.kt: Unresolved reference: rxRequest
library project
ビルド成功、ビルドフォルダにkotlin .classが生成されました。
しかし、main project
ビルドに失敗しました。ビルド フォルダーに kotlin .class ファイルがありません。
kotlin - Adapter または ViewHolder での Kotlin 合成
私はkotlinが初めてです。クラスで迷惑なメソッドの代わりに合成メソッドを見つけて使用しようとしましfindViewById
たActivity
が、「ビューで合成プロパティを呼び出したい場合 (アダプタークラスで便利)、kotlinx.android.synthetic.main もインポートする必要があることがわかりました。 。見る。*。" しかし、それがどのように機能するのか正確にはわかりませんか?例はありますか?
android - Kotlin Android 拡張機能、パッケージをインポートできません
最新の Kotlin Android 拡張プラグイン (バージョン 1.0.0-beta-1103) をインストールし、Gradle 依存関係にクラスパスを追加しました。コンパイルはできますが、まだ Android フラグメント内にパッケージをインポートできません。
Gradle ファイルの関連部分は次のとおりです。
失敗している import ステートメントを次に示します。IDE の状態に「パッケージをインポートできません」というエラーが表示される
android - Android gradle プラグインが Uncaught 翻訳エラーを訴える
kotlin のバージョンを 1.0.0-beta-2423 に更新しています。関連する依存関係のバージョン番号を更新するだけです。しかし、assemblyDebug タスクを実行すると、このエラーが発生します。
ここにリストされているすべての依存関係:
ここで何がうまくいかないのですか?
更新:
全体build.gradle
が更新されました
kotlin-android-extensions - Kotlin Android Extensions:別のレイアウトに含まれるレイアウト内のビューへの参照を取得する方法は?
別のレイアウトを含むレイアウトがあります。
activity_main.xml:
included_layout.xml
含まれているレイアウトで TextView への参照を取得するにはどうすればよいですか? (まだ)サポートされていませんか?
主な活動: