2017-11-01 16 views
7

मैं अपने सामान्य मॉड्यूल BaseActivity.kt और BaseFragment.kt में घटक विकास का उपयोग कर रहा हूं। निम्न समस्याओं होते हैं जब अन्य मॉड्यूल उन्हें वारिसकोटलिन 'ऑनक्रेट' कुछ भी ओवरराइड नहीं करता

> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\MainActivity.kt 
> Error:(7, 24) Unresolved reference: base 
> Error:(9, 22) Unresolved reference: BaseActivity 
> Error:(21, 5) 'onCreate' overrides nothing 
> Error:(17, 5) 'getLayoutRes' overrides nothing 
> Error:(22, 15) Unresolved reference: onCreate 
> Error:(27, 22) Unresolved reference: findViewById 
> Error:(42, 34) Unresolved reference: supportFragmentManager 
> D:\Android\OneDaily\module_main\src\main\java\com\boco\main\TimelineFragment.kt 
> Error:(7, 24) Unresolved reference: base 
> Error:(10, 5) 'getLayoutRes' overrides nothing 
> Error:(9, 26) Unresolved reference: BaseFragment 
> Error:(14, 5) 'onCreateView' overrides nothing 
> Error:(15, 22) Unresolved reference: onCreateView 

BaseActivity.kt:

abstract class BaseActivity : AppCompatActivity() { 
    init { 
     AppCompatDelegate.setCompatVectorFromResourcesEnabled(true) 
    } 
    abstract fun getLayoutRes(): Int 
    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(getLayoutRes()) 
    } 
} 

MainActivity.kt

class MainActivity : BaseActivity() { 

    private lateinit var mBottomNav: BottomNavigationView 

    private var mFragment1 = TimelineFragment() as Fragment 
    private var mFragment2 = TimelineFragment() as Fragment 
    private var mFragment3 = TimelineFragment() as Fragment 

    override fun getLayoutRes(): Int { 
     return R.layout.activity_main 
    } 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 

    } 
} 
+0

करने से compileSdk पर वापस लौटने के लिए अपने कोड को देखने के लिए मदद मिलेगी। – alex

+0

कृपया अपना कोड स्निपेट –

+0

साझा करें मैंने एंड्रॉइड स्टूडियो 3.0 स्थिर संस्करण के साथ अपना दिया कोड आज़माया है और यह ठीक काम कर रहा है। क्या आपने एंड्रॉइड स्टूडियो के समान या अन्य संस्करण का उपयोग किया है? –

उत्तर

17

यह कुछ कार्यों लगता अंतिम अपडेट में बदल दिया है, बस Bundle

से ' ?' को हटाएं

इस तरह:

override fun onCreate(savedInstanceState: Bundle) { 
    super.onCreate(savedInstanceState) 
} 
+0

कौन सा संस्करण '?' को हटा सकता है – RootKit

+1

इसके अलावा, अगर आपको एक ही त्रुटि मिल रही है लेकिन एक टुकड़े में, '?' को हटा दें खंड में प्रबंधक: FragmentManager –

+0

यह उत्तर शीर्ष-उत्तर के रूप में चुना जाना चाहिए। मेरी मदद की! – romaneso

9

यह एक टुकड़ा कक्षा में भी हो सकता है: मैं विधि onCreateView के लिए एक ही मुद्दा मिल गया; कि से बचने के लिए, बस LayoutInflater पैरामीटर से ?,

इस तरह निकालें:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? 
0

अद्यतन समारोह हस्ताक्षर या 27 26

संबंधित मुद्दे