Vraag kotlin 'onCreate' heft niets op


Ik gebruik componentontwikkeling, in mijn gemeenschappelijke module BaseActivity.kt en BaseFragment.kt. De volgende problemen treden op wanneer andere modules ze erven

> 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)

    }
}

11
2017-11-01 06:36


oorsprong


antwoorden:


Het lijkt erop dat sommige functies zijn veranderd in de laatste update, verwijder gewoon de '?' van de Bundle

Soortgelijk:

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

31
2017-11-01 09:05



Het kan ook voorkomen in een Fragment-klasse: ik vond hetzelfde probleem voor de methode onCreateView; om dat te voorkomen, verwijdert u gewoon de ? van de LayoutInflater parameter,

Soortgelijk:

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

29
2018-01-05 11:31



Ik moet toevoegen "?" bij gebruik van appcompat-v7: 27.1.1

implementation "com.android.support:appcompat-v7:27.1.1

en

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

1
2018-04-24 18:52



Update handtekeningen van functies of herstel compilerenSdk van 27 naar 26


0
2018-03-02 14:39