Tag: 匕首

Kotlin错误:匕首不支持注入私人领域

我在kotlin活动ViewPager中使用,我想在Kotlin Fragment中使用匕首注入。 我有错误:匕首不支持注入私人领域。 在Java片段的匕首注入工作。 为什么我不能在kotlin碎片中注入匕首? 在我的kotlin活动 mPagerAdapter = object : FragmentPagerAdapter(supportFragmentManager) { private val mFragments = arrayOf(KotlinFragment(), JavaFragment()) private val mFragmentNames = arrayOf(getString(R.string.cashdocuments), getString(R.string.action_absmysql)) override fun getItem(position: Int): Fragment { return mFragments[position] } override fun getCount(): Int { return mFragments.size } override fun getPageTitle(position: Int): CharSequence { return mFragmentNames[position] } } 我的kotlin片段 class KotlinFragment : […]

匕首2在Kotlin未解决的参考

我正在尝试在我的Android项目中使用Dagger 2,我在Kotlin中编写代码。 我从Dagger 2回购Android的简单的例子。 我已经设法在Android Studio中使用来自dagger-android-gradle-sample的示例正确配置项目,它包含正确配置的gradle文件。 现在我开始将java类更改为kotlin。 这是自动转换的DemoApplication.java在kotlin中的样子: public class DemoApplication : Application() { Singleton Component(modules = array(javaClass<AndroidModule>())) trait ApplicationComponent { public fun inject(application: DemoApplication) public fun inject(homeActivity: HomeActivity) public fun inject(demoActivity: DemoActivity) } public var component: ApplicationComponent? = null override fun onCreate() { super.onCreate() component = `Dagger_DemoApplication$ApplicationComponent`.builder().androidModule(AndroidModule(this)).build() component!!.inject(this) } } 匕首生成的类在Kotlin中可见,但它抱怨($)类名称中使用的符号。 ($)在Kotlin有特殊的目的,所以我想这就是为什么。 你可以注意到auto-convertion用(`)符号封装类名,所以编辑器不会抱怨它。 不幸的是,编译器失败: […]

“更喜欢在Kotlin上运行匕首处理器”

每当我做一个注入到一个kotlin类(顺便说一下,我有一个混合的Android项目与kotlin和Java),我在构建中得到这个笔记。 例如,在这个gradle任务之后: compileStagingDebugJavaWithJavac (StagingDebug是我的构建变体),我得到这个消息: “注意:为com.packageNameXXX.CourseDiscoveryMapFragment生成MembersInjector或Factory,而不是使用该类来运行匕首处理器。 我的CourseDiscoveryMapFragment代码可以在这里看到: class CourseDiscoveryMapFragment : Fragment(){ @Inject lateinit var presenter: CourseDiscoveryMapPresenter lateinit var mapView: MapView override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view = inflater.inflate(R.layout.fragment_discovery_map, container, false) MapsInitializer.initialize(activity) mapView = view.mapView mapView.onCreate(savedInstanceState?.getBundle(BUNDLE_KEY_MAP_STATE)) (activity as BaseActivity) .activityComponent.inject(this) } 而我的ActivityComponent是: @ActivityScope @Subcomponent(modules = ActivityModule.class) public interface ActivityComponent { void […]