問題タブ [kotlin-extension]
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 での Kotlin ビルドの問題
multidex を使用するやや大規模なプロジェクトに Kotlin を統合しました。
したがって、ビルドしようとすると、次のエラーが発生します。
:incrementalDesygnerDebugJavaCompilationSafeguard UP-TO-DATE
:compileDesygnerDebugKotlin
WARN: Failed to initialize native filesystem for Windows
java.lang.RuntimeException: Could not find installation home path. Please make sure bin/idea.properties is present in the installation directory.
パスは正しく構成されているようで、idea.properties
ファイルはそこにあるようです:C:\Program Files\Android\Android Studio\bin\idea.properties
建物が停止するまでに数分かかるので、Windows のタスク マネージャーから手動で停止します。
再試行すると、ビルドは成功します!
しかし、行を変更して再構築すると、同じエラーが再び表示されます。
時々私もこれを手に入れます:
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space
あらゆる種類のメモリ設定を増やしてみましたが、正しく行われていない可能性があります
org.gradle.jvmargs=-Xmx8g -XX:MaxPermSize=2048m
私が持っているものですgradle.properties
Instant Run のオンとオフを試してみました。
プロジェクトは Kotlin なしで正常にビルドされ、Android Studio 2.0 安定版、Kotlin 安定版、Kotlin EAP および AS Canary ビルドを試しました。
PSgradlew assembleDebug
は、AS でビルドしてみるまで毎回動作します。
編集:同じプロジェクトを試しました:
- 別の Windows 10 PC -> 同じこと。
- OSX -> 問題なく動作します。
何か案は?
maven - Mavenの依存関係でKotlin拡張機能を「有効にする」方法の例はありますか?
Kotlin を使い始めて、Kotlin-JDBC サンプル ( https://github.com/kotlin-projects/kotlin-jdbc ) を使用しようとしており、Kotlin/Maven プロジェクトに次の依存関係を追加しました。
ただし、拡張関数はどれも IntelliJ には表示されません。
「更新」は IDE に赤で表示されます。これを修正する方法について何か考えはありますか?
kotlin - 親コンテキストで変数を作成する方法
Kotlinでこの構文に似たものを実装しようとしています
a
内で解決できないため、現時点ではこれは機能しませんafter
。これはクロージャーの仕組みによるものだと理解しています。
私の質問は、Kotlin にこれを可能にし、レシーバー オブジェクトに格納され、他のクロージャー/拡張機能にアクセスできるような方法でクロージャー/拡張機能に変数を作成できるメカニズムがあるかどうかです。
これは、Groovy スクリプトを Kotlin に移行する取り組みの一環です。
免責事項: これは、Kotlin を使用する初めての試みです。ドキュメントを読みましたが、何か(多く)が欠けている可能性があります。自由に正しい方向を指してください
EDIT:コンパイル可能な例を追加
properties - 可変プロパティの Kotlin 拡張関数
拡張機能でプロパティを再割り当てできるように、変更可能なプロパティに拡張機能を設定しようとしています。可能かどうか知りたかった。
私の目標はDate
、簡単にアクセスできる拡張機能を作成することです。例えば:
この関数は、オブジェクトを使用して日付に日数を追加しCalendar
ます。問題は、この関数を使用するたびに再割り当てするのが混乱する可能性がある新しい日付を返す必要があることです。
私が試したこと:
Date
残念ながら、これはオブジェクトでは使用できません。
これを行うことは可能ですか?
android - Android SDK クラスの Kotlin 拡張関数の単体テスト
Kotlinの拡張機能は素晴らしいです。しかし、それらに対して単体テストを実行するにはどうすればよいでしょうか? 特に、Android SDK が提供するクラス (Context、Dialog など) のもの。
以下に 2 つの例を示します。単体テストの方法を誰かが共有できるかどうか、または本当に単体テストを行いたい場合に別の方法で記述する必要があるかどうかを教えてください。
と
どんな提案も役に立ちます。ありがとう!
android - 関数パラメーターを介して拡張関数を送信できますか
私は以下のいくつかの拡張機能関数を持っています。
setEmailValidationListener
とはsetPasswordValidationListener
、それぞれ使用する検証関数、つまりvalidateEmailFormat
とを除いて、同じですvalidatePasswordFormat
。
そのため、以下のように 2 つの関数の共通コードを共通関数にリファクタリングする予定です。
validationFunc
...基本的には、パラメーターとして送信するだけです。
EditText.validateEmailFormat
ただし、 andEditText.validatePasswordFormat
をvalidationFunc
関数パラメーターに送信する方法が見つかりません。
どうすればそれを達成できますか?
android - Kotlin クラス NoClassDefFoundError クラッシュ
次のライブラリを使用する既存の Android プロジェクトがあります。
- 自動値
- ダガー2
- RxJava
- レトロラムダ
プロジェクトをゆっくりと Kotlin に移行できるように、Kotlin サポートを追加しようとしています。これが私がやったことです。
- Kotlin の依存関係を追加しました。
クラスの 1 つを Kt クラスに変換し、
src/main/kotlin/..package..
ソースセットに kotlin を追加しました。sourceSets { main.java.srcDirs += 'src/main/kotlin' }
クリーン ビルドを実行してアプリをデプロイすると、NoClassDefFoundError 例外が発生します。ただし、再度デプロイすると問題なく動作します。助言がありますか?
kapt
変換したクラスには注釈がないため、プラグインは適用しませんでした。
注: 最新の kotlin 1.0.4 を使用しています。また、インスタントランを無効にしています。