2017-11-01 356 views
7

Bileşen geliştirmeyi temel modülüm olan BaseActivity.kt ve BaseFragment.kt dizinlerinde kullanıyorum. diğer modüller onlarakotlin 'onCreate' hiçbir şeyi geçersiz kılar

BaseActivity.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 

miras, aşağıdaki sorunlar oluşabilir:

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

MainActivity.kt Bazı fonksiyonları görünüyor

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

26 ila compileSdk dönmek: önlemek için, sadece bu gibi LayoutInflater parametresinden ?,

kaldırın. – alex

+0

Lütfen kod snippet'ini paylaşın –

+0

Verilen kodu Android Studio 3.0 kararlı sürümü ile denedim ve iyi çalışıyor. android stüdyonun aynı veya başka bir sürümünü mi kullanıyorsunuz? –

cevap

17

son güncellemesinde değişmiştir sadece '?' öğesini Bundle

'dan kaldırınBunun gibi

:

Bir Parçası sınıfında da olabilir
override fun onCreate(savedInstanceState: Bundle) { 
    super.onCreate(savedInstanceState) 
} 
+0

Hangi sürüm '?' kaldırabilirsiniz – RootKit

+1

Ayrıca, aynı hatayı alıyorsanız ancak bir parçasında '?' fragmentManager: FragmentManager –

+0

Bu cevap, en yüksek cevap olarak seçilmelidir. Bana yardım etti! – romaneso

9

: Ben yöntemle onCreateView için aynı sorunu bulundu;

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

Güncelleme işlevi imzaları veya kodunuzu görmek için yardım eder misin 27