Intereting Posts
सिम चयन विकल्प का उपयोग करके एसएमएस भेजें एंड्रॉइड एप्लिकेशन और जावा के बीच संवाद करें java.lang.ClassCastException: android.graphics.drawable.LayerDrawable को एंड्रॉइड के लिए डाला नहीं जा सकता। graphics.drawable.GradientDrawable ऐपकंपिप्ट के खोजव्यू पाठ और हिंट रंग बदलें एंड्रॉइड: टेक्स्टइनपुटलेआउट छुपाने में छिपाता है बाल संपादित करें टेक्स्ट का राइट एंड्रॉइड प्रोग्रामिंग – स्क्रीन रिज़ॉल्यूशन एप्लिकेशन अपडेट के बाद टेबलेट के साथ क्यों संगत नहीं है? मैं एंड्रॉइड मीडियाप्लेयर में वर्तमान मात्रा / आयाम कैसे प्राप्त करूं? एंड्रॉइड – स्पर्श पर आइकन चमक कैसे करें? स्ट्रिंग फ़ॉर्मेट किए गए दिनांक फ़ील्ड के द्वारा SQLite DB सॉर्ट क्वेरी क्या एडीबी खोल से आवेदन डेटा को देखना संभव है, जैसा कि मैंने इसे एसडी कार्ड बढ़ाना देखा है? एंड्रॉइड एक्लिप्स लॉगकैट संदेश: एडीटी को एप्लिकेशन कॉलम कैसे मिलता है? टाइल प्रोवाइडर विधि getTile – अक्षांश और लंबे समय से एक्स और वाई का अनुवाद करने की आवश्यकता है डोज़ पर zz_moto_actionbar_bkg.xml संसाधन त्रुटि क्या कोड से स्पष्ट अनुमति की जांच करने का कोई तरीका है?

कोटलिन में कमरे की मजबूती के लिब कार्यान्वयन (ग्रेडल त्रुटि)

मैं अपने डेटाबेस कार्यान्वयन के लिए कोटलिन में कक्ष दृढ़ता से लागू कर रहा हूँ एंड्रॉइड रूम ऐरिस्टेंस लाइब्रेरी और कोटलिन थ्रेड में भी यही सवाल पूछा गया है , उन समाधानों को लागू करने से विभिन्न ग्रेडले त्रुटियों का परिणाम सामने आया है:

निम्नलिखित मेरी Entity , Dao और Database वर्ग हैं:

Food.kt

 @Entity class Food(@ColumnInfo(name = "food_name") var foodName: String, @ColumnInfo(name = "food_desc") var foodDesc: String, @ColumnInfo(name = "protein") var protein: Double, @ColumnInfo(name = "carbs") var carbs: Double, @ColumnInfo(name = "fat") var fat: Double) { @ColumnInfo(name = "id") @PrimaryKey(autoGenerate = true) var id: Long = 0 @ColumnInfo(name = "calories") var calories: Double = 0.toDouble() } 

PersonalizedFood.kt

 @Entity(primaryKeys = arrayOf("food_id","date")) class PersonalizedFood(@ColumnInfo(name = "quantity") var quantity: Int, @ColumnInfo(name = "unit") var unit: String, @ColumnInfo(name = "date") var date: Date){ @ColumnInfo(name = "food_id") var foodId:Long = 0 } 

FoodDao.kt

 @Dao interface FoodDao { companion object{ const val ID = "id" const val NAME = "name" const val PROTEIN = "protein" const val DESC = "desc" const val CARBS = "carbs" const val FAT = "fat" const val DATE = "date" const val FOOD_ID = "food_id" const val ALL_FOOD_LIST = "food" const val PERSONALISED_FOOD_LIST = "personalised_food" } /** * Returns food details of a food given by food_id */ @Query("SELECT * FROM $ALL_FOOD_LIST WHERE $ID=:food_id") fun getFoodDetails(food_id:Long):Food /** * Inserts food items in all_food_list */ @Insert fun addFoodList(list:ArrayList<Food>) @Insert(onConflict = REPLACE) fun saveFood(food:PersonalizedFood) @Query("SELECT * FROM $PERSONALISED_FOOD_LIST WHERE $FOOD_ID=:foodId and $DATE=:date") fun getFood(foodId:Int, data:Date):PersonalizedFood @Query("SELECT * FROM $ALL_FOOD_LIST where $ID in (select $FOOD_ID from $PERSONALISED_FOOD_LIST where $DATE = :date)") fun getFood(date:Date):ArrayList<Food> } 

Converter.kt

 class Converter { companion object{ @TypeConverter fun fromTimestamp(value: Long?): Date? { return if (value == null) null else Date(value) } @TypeConverter fun dateToTimestamp(date: Date): Long { return date.time } } } 

FoodDatabase.kt

 @Database(entities = arrayOf(Food::class, PersonalizedFood::class), version = 1) @TypeConverters(Converter::class) abstract class FoodDatabase : RoomDatabase(){ abstract fun foodDao():FoodDao companion object{ private val databaseName = "diet" var dbInstance:FoodDao? = null fun getInstance(context:Context):FoodDao?{ if(dbInstance == null) dbInstance = Room.inMemoryDatabaseBuilder(context, FoodDatabase::class.java).build().foodDao() return dbInstance; } } } 

और जब मैं डेटाबेस बनाने के लिए निम्न कोड चलाता हूं:

FoodDatabase.getInstance(baseContext)?.getFood(Calendar.getInstance().time)

यह मुझे निम्नलिखित अपवाद देता है:

 Caused by: java.lang.RuntimeException: cannot find implementation for com.chandilsachin.diettracker.database.FoodDatabase. FoodDatabase_Impl does not exist at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:90) at android.arch.persistence.room.RoomDatabase$Builder.build(RoomDatabase.java:340) at com.chandilsachin.diettracker.database.FoodDatabase$Companion.getInstance(FoodDatabase.kt:21) at com.chandilsachin.diettracker.MainActivity$SetUpFoodDatabase.doInBackground(MainActivity.kt:95) at com.chandilsachin.diettracker.MainActivity$SetUpFoodDatabase.doInBackground(MainActivity.kt:77) at android.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818) 

कोटलिन में किसी को भी कमरे में दृढ़ता से लागू किया गया है?

संपादित

उसी विषय पर मेरा पिछले प्रश्न इस के डुप्लिकेट चिह्नित किया गया था। हालांकि समस्या का बयान एक ही है, लेकिन दिया समाधान मेरी समस्या का समाधान नहीं करता है समाधान कहता है कि मुझे kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" को kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" निर्भरता। मैंने उन परिवर्तन किए हैं और यह परियोजना के निर्माण के दौरान क्रमशः त्रुटि में हुई है।

 Information:Gradle tasks [:app:assembleDebug] Warning:warning: Supported source version 'RELEASE_7' from annotation processor 'android.arch.persistence.room.RoomProcessor' less than -source '1.8' Warning:warning: The following options were not recognized by any processor: '[kapt.kotlin.generated]' /Users/BBI-M1025/Documents/BBI/Workspace_fun/Android/diet-tracker/app/src/main/java/com/chandilsachin/diettracker/database/Food.kt Error:(1, 1) Some error(s) occurred while processing annotations. Please see the error messages above. Error:Execution failed for task ':app:kaptDebugKotlin'. > Compilation error. See log for more details Information:BUILD FAILED in 10s Information:2 errors Information:2 warnings Information:See complete output in console 

मैं भी मेरी gradle फ़ाइल संलग्न कर रहा हूँ:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.chandilsachin.diettracker" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile 'com.android.support:appcompat-v7:25.0.1' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha8' compile 'com.android.support:cardview-v7:25.0.1' compile 'com.android.support:recyclerview-v7:25.0.1' compile 'com.github.ne1c:rainbowmvp:1.2.1' compile "org.jetbrains.anko:anko-commons:0.10.0" /*annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1" compile "android.arch.lifecycle:extensions:1.0.0-alpha1" annotationProcessor "android.arch.lifecycle:compiler:1.0.0-alpha1"*/ compile "android.arch.persistence.room:runtime:1.0.0-alpha1" annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1" kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" testCompile 'junit:junit:4.12' } repositories { mavenCentral() } 

क्या कोई इस मुद्दे पर आया है?

Solutions Collecting From Web of "कोटलिन में कमरे की मजबूती के लिब कार्यान्वयन (ग्रेडल त्रुटि)"

इस समस्या के साथ थोड़ी देर के लिए मेरे सिर को कताई के बाद, मैं समाधान के लिए आया था

यह वास्तव में कठिन था क्योंकि अब तक इस समस्या के साथ कोई आधिकारिक ट्यूटोरियल, ब्लॉग आदि नहीं है।

मुझे ग्रेडल प्लगिन और निर्भरता के सभी संयोजन के लिए कई हिट एंड ट्रायल करना था क्योंकि मुझे पता था कि केवल ग्रेडल कॉन्फिग के साथ कुछ गलत है।

हम समाधान के लिए आते हैं:

मुझे apply plugin: 'kotlin-kapt' build.gradle (: मॉड्यूल) फ़ाइल से apply plugin: 'kotlin-kapt' को निकालना पड़ा और annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1" kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha1" को kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" करना kapt "android.arch.persistence.room:compiler:1.0.0-alpha1"

यह कोड को सफलतापूर्वक संकलित करने के लिए gradle कॉन्फ़िगरेशन है।

लेकिन अधिक चीजें चेक करने के लिए आपको रूम @Entity class में दिए गए जावा के विपरीत अपने @Entity class गुणों को शुरू करना होगा। यद्यपि ग्रहक सेटर उपलब्ध हैं लेकिन शुरुआती के साथ एक निर्माता बनाने के लिए इसका उल्लेख नहीं है। इसलिए मुझे इसके साथ @Entity क्लास को बदलना पड़ा:

 @Entity(tableName = "all_food_list") class Food (@ColumnInfo(name = "food_name") var foodName: String = "", @ColumnInfo(name = "food_desc") var foodDesc: String = "", @ColumnInfo(name = "protein") var protein: Double = 0.0, @ColumnInfo(name = "carbs") var carbs: Double = 0.0, @ColumnInfo(name = "fat") var fat: Double = 0.0, @ColumnInfo(name = "calories") var calories: Double = 0.0) { @ColumnInfo(name = "id") @PrimaryKey(autoGenerate = true) var id: Long = 0 } 

अब TypeConverts के लिए, जावा के विपरीत, आपको सामान्य कार्य को स्थिर कार्य (साथी ऑब्जेक्ट) बनाने की आवश्यकता नहीं है:

 class Converters{ @TypeConverter fun fromTimestamp(value: String): Calendar { val arr = value.split("-") val cal = Calendar.getInstance() cal.set(arr[0].toInt(), arr[1].toInt(), arr[2].toInt()) return cal } @TypeConverter fun dateToTimestamp(date: Calendar): String { return "${date.get(Calendar.DATE)}-${date.get(Calendar.MONTH)+1}-${date.get(Calendar.YEAR)}" } } 

मैं इसे और अधिक स्पष्ट बनाने के लिए build.gradle फ़ाइल भी जोड़ रहा हूं:

build.gradle (: परियोजना)

 buildscript { ext.kotlin_version = '1.1.2-4' ext.gradle_version_stable = '2.3.2' ext.gradle_version_preview = '3.0.0-alpha1' ext.anko_version = '0.10.0' repositories { maven { url 'https://maven.google.com' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0-alpha1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { maven { url 'https://maven.google.com' } jcenter() maven { url "https://jitpack.io" } } } task clean(type: Delete) { delete rootProject.buildDir } 

build.gradle (: मॉड्यूल)

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.chandilsachin.diettracker" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" ... ... // room persistence dependency compile "android.arch.persistence.room:runtime:1.0.0-alpha1" kapt "android.arch.persistence.room:compiler:1.0.0-alpha1" testCompile 'junit:junit:4.12' } repositories { mavenCentral() } 

मुझे लगता है कि यह सब कुछ है, मैंने अपना कोड लुप्त करने के लिए किया।

उम्मीद है कि यह किसी और को भी मदद करता है

आदमी सिर्फ build.gradle में निम्नलिखित जोड़ें। निर्भरता के ऊपर: डी

  kapt { generateStubs = true }