কোটলিনে "ক্লাসের পরিবর্তে ছিনতাই প্রসেসর চালানো পছন্দ করুন"


124

আমি যখনই কোটলিন শ্রেণিতে একটি ইনজেকশন করি তখন বিল্ডে আমি এই নোটটি পেয়ে যাচ্ছি (বিটিডাব্লু, আমার কোটলিন এবং জাভা উভয়ের সাথে একটি মিশ্র অ্যান্ড্রয়েড প্রকল্প রয়েছে)।

উদাহরণস্বরূপ, এই গ্রেড টাস্কের পরে: compileStagingDebugJavaWithJavac(স্টেজিংডিবগ আমার বিল্ড বৈকল্পিক), আমি এই বার্তাটি পাই:

"দ্রষ্টব্য: কম.প্যাকেজ নেমএক্সএক্সএক্সএক্স.কোর্সডিসকোভারি ম্যাপফ্র্যাগমেন্টের জন্য সদস্যবৃক্ষ বা শিল্প কারখানা তৈরি করা instead পরিবর্তে সেই শ্রেণীর উপরে ছিনতাই প্রসেসর চালানো পছন্দ করুন।"

আমার কোর্সডিসকোভারি ম্যাপফ্র্যাগমেন্ট কোডটি এখানে দেখা যায়:

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

এবং আমার ক্রিয়াকলাপের উপাদানটি হ'ল:

@ActivityScope
@Subcomponent(modules = ActivityModule.class)
public interface ActivityComponent {

    void inject(BaseActivity baseActivity);

    void inject(CourseDiscoveryMapFragment fragment);

    //Exposed to sub-graphs.
    Activity activity();
}

সুতরাং, আমি কোটলিনে ড্যাজার ইনজেকশন দেওয়ার সময় জাভাতে ডাগর উপাদান এবং মডিউলগুলি লিখছি।

এটি কি এমন কিছু যা আমি উদ্বিগ্ন হওয়া উচিত?

ধন্যবাদ.


আপনি কি পুরো ত্রুটি / সতর্কতা এবং এর সাথে সম্পর্কিত কোডটি পোস্ট করতে পারেন?
মার্কোস্পেরির

4
প্রশ্নটির আরও বিশদ প্রয়োজন। আপনি মূলত একটি প্রশ্ন হিসাবে একটি গুগল ক্যোয়ারী লিখেছেন।
জেইসন মিনার্ড

@ মার্কসপিরির পুনঃ সম্পাদিত! ধন্যবাদ!
ফ্যাবিও

4
আরে, আপনি কি সেই সমাধানের সমাধান খুঁজে পেয়েছিলেন বা সেই সতর্কতার কারণ হতে পারে?
wojciech_maciejewski

3
উত্তরটি এখানে: github.com/square/dagger/issues/537
আর

উত্তর:


5

আমি ভয় পাচ্ছি তুমি পারবে না কোটলিনে নির্ভরতা মডিউল লিখছেন না কেন?

জাভাতে নির্ভরতা মডিউলগুলি লিখতে আপনাকে আপনার গ্রেডল স্ক্রিপ্টটি এভাবে কনফিগার করতে হবে:

 compile 'com.google.dagger:dagger:2.8'
 apt 'com.google.dagger:dagger-compiler:2.8'

কিন্তু, কোটলিনে নির্ভরতা মডিউলগুলি লিখতে আপনার গ্র্যাডল স্ক্রিপ্টটি এইভাবে কনফিগার করা উচিত:

compile 'com.google.dagger:dagger:2.8' 
kapt 'com.google.dagger:dagger-compiler:2.8'

সংকলন প্রক্রিয়া চলাকালীন নির্ভরতা কোড উত্পন্ন করতে ড্যাজারের জন্য টিকা রচনার প্রক্রিয়াজাতকরণ সরঞ্জাম প্রয়োজন। সুতরাং আমি অনুমান করি যে আপনাকে সঠিক ভাষা অনুসারে সঠিক এপিটি (টিকা প্রক্রিয়াকরণ সরঞ্জাম) ব্যবহার করতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.