मेरे पास नई डेटाबाइंडिंग लाइब्रेरी का उपयोग करके जावा में लिखे गए खंड वर्ग हैं
import com.example.app.databinding.FragmentDataBdinding;
public class DataFragment extends Fragment {
@Nullable
private FragmentDataBinding mBinding;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false);
return mBinding.getRoot();
}
}
यह संकलन करता है और ठीक चलता है।
मैंने कोटलिन में इसे फिर से लिखने की कोशिश की और निम्नलिखित के साथ आया:
import com.example.app.databinding.FragmentDataBdinding
class ProfileFragment : Fragment() {
private var mBinding: FragmentDataBinding? = null
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false)
return mBinding!!.getRoot()
}
}
लेकिन अब चरण :app:compileDebugKotlin
निम्न आउटपुट करता है:
त्रुटि: (१६, ३ 38) अनारक्षित संदर्भ: डेटाबाइंडिंग
त्रुटि: (३ 38, २ 38) अनारक्षित संदर्भ: फ्रैगमेंटडॉटबाइंडिंग
मैं कोटलिन के साथ एंड्रॉइड-डेटाबाइंडिंग लाइब्रेरी का उपयोग कैसे कर सकता हूं?
मेरा शीर्ष-स्तर build.gradle
:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.android.databinding:dataBinder:1.0-rc4'
}
}
allprojects {
repositories {
jcenter()
}
}
build.gradle
ऐप में मेरा नाम (केवल प्रासंगिक भाग):
apply plugin: 'com.android.application'
apply plugin: 'com.android.databinding'
apply plugin: 'kotlin-android'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
buildscript {
ext.kotlin_version = '0.14.451'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
}
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
मैं एंड्रॉइड स्टूडियो 1.4, बिल्ड टूल्स संस्करण 23.0.1, एंड्रॉइड एसडीके 23, एसडीके टूल्स 24.4.0 का उपयोग कर रहा हूं
apply plugin: 'kotlin-kapt'
हाल ही के संस्करण में ऐप ग्रेड फ़ाइल में होना चाहिए।