কীভাবে এক্সএলিন্ট যুক্ত করবেন: আমার অ্যান্ড্রয়েড গ্রেডল ভিত্তিক প্রকল্পে চেক করা হয়নি?


138

আমি মূল build.gradleফাইলটিতে নিম্নলিখিতগুলি যুক্ত করার চেষ্টা করেছি :

subprojects {
    gradle.projectsEvaluated {
        tasks.withType(Compile) {
            options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"
        }
    }
}

তবে আমি এটি পাচ্ছি:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Libraries:ActionBarSherlock:compileRelease'.
> invalid flag: -Xlint:unchecked -Xlint:deprecation

আমি কি ভুল করছি?


কেবলমাত্র একটি পরামিতি যেমন বিকল্পগুলি.কম-পিলারআর্গ << "-এলিন্ট: অবমূল্যায়ন" দিয়ে ঠিক আছে কি ??
শাকালকা

1
হ্যাঁ এটা কাজ করে. আমি পরিবর্তিত হয়েছি "-Xlint:unchecked" << "-Xlint:deprecation"এবং এটি উভয়ের জন্যই কাজ করেছে :) আপনি যদি এটির সাথে উত্তর তৈরি করতে চান তবে আমি আনন্দের সাথে স্বীকৃত হিসাবে চিহ্নিত করব।
rfgamaral

@ রিকার্ডোআমরাল সম্ভবত আপনার এটির আনুষ্ঠানিকভাবে জবাব দেওয়া উচিত এবং এই শালাকার মন্তব্যটি উল্লেখ করা উচিত।
ডান্ড্রে অ্যালিসন

উত্তর:


232

এটিই আমার পক্ষে কাজ করেছে: (আপনার প্রকল্পের বিল্ড.gradle এ)

allprojects {
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

1
নির্ভরতা বাদ দিয়ে আপনি কীভাবে এটি কেবলমাত্র মূল মডিউলটির জন্য করবেন?
aleb

4
@ আলেব, আমি ধরে নিয়েছি আপনার অর্থ কেবলমাত্র বিল্ড.gradle- তে সমস্ত বিল্ড.gradle- তে (অর্থাত্ সমস্ত প্রকল্পগুলি) নয় কেবলমাত্র সেটিংটি প্রয়োগ করুন। সেক্ষেত্রে এটি allprojectsবন্ধ করে জড়িয়ে রাখবেন না ।
TheChrisPratt

এটি কি লিন্টের রানগুলিতে কোনও পার্থক্য করার কথা? কিছু কারণে, আমার লিঙ্ক -Xlint:uncheckedসেটিং নির্বিশেষে ঠিক একই সতর্কতা বার্তা প্রদর্শন করছে ।
ইগোরগানাপলস্কি

আমি মনে করি এটি "build.gradle" এর পরিবর্তে "build-extras.gradle" এ যুক্ত করা ভাল।
ম্যাক্সিম

2
ধন্যবাদ, এটি আমার পক্ষে কাজ করেছে যদিও আমি নিশ্চিত নই যে এই উত্তরটি কোথা থেকে এসেছে। আমার কাছে এটি হাস্যকর বলে মনে হচ্ছে যে ডিফল্টরূপে লিন্টারগুলি এই অপশনগুলি যোগ না করা পর্যন্ত সমস্যা সম্পর্কিত কোনও তথ্য ছাড়াই একটি ত্রুটি বাড়িয়ে তুলবে।
জেএইচএস

55

দাবি অস্বীকার : যদিও এই উত্তরে 10 টিরও বেশি আপত্তি রয়েছে, এটি কোনও অ্যান্ড্রয়েড প্রকল্পের প্রসঙ্গে সমস্যাটির সমাধান করে না । তবে গুগল অ-অ্যান্ড্রয়েড প্রকল্পগুলির প্রসঙ্গে এই প্রশ্নটি আবিষ্কার করে। সুতরাং, আমি এই উত্তর তাদের জন্য রাখি।

জাভা কমপাইল অনুসারে , নিম্নলিখিতটি সমাধান বলে মনে হচ্ছে:

compileJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

আপনি যদি পরীক্ষার ক্ষেত্রে এটি করতে চান তবে ব্যবহার করুন compileTestJava

compileTestJava {
    options.encoding = 'UTF-8'
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}

1
এটি কি শীর্ষ-স্তরের বিল্ড.gradle, বা মডিউলে যায়?
ইগোরগানাপলস্কি

5
মডিউলটির build.gradle ফাইলটিতে।
ডক্টর সাইমন হেরার

3
আপনি কি প্রথম স্নিপেটের প্রসঙ্গটি প্রসারিত করতে পারেন? gradle.buildএটা কোথায় যায় ?
not2qubit

এই সমাধান মডিউল যা আবেদন করেন জন্য কাজ করে javaতাদের মধ্যে প্লাগইন build.gradleফাইল কিন্তু মডিউল যা আবেদন করেন না com.android.applicationবা com.android.libraryপ্লাগইন।
আদিল হুসেন

2
@ কোপ্পোর: পূর্ববর্তী মন্তব্য দেখুন। অ্যান্ড্রয়েড বিকাশকারীদের জন্য কাজ করে না। "... অ্যান্ড্রয়েড গ্রেডল ভিত্তিক প্রকল্প" শিরোনামের থ্রেডের জন্য যা সমস্যা।
রবিন ডেভিস

7

এটি আপনার বিল্ড.gradle ফাইল (মূল ডিরেক্টরি) এ রাখুন:

allprojects { // Projects
   gradle.projectsEvaluated {
      tasks.withType(JavaCompile) {
         options.encoding = 'UTF-8'
         options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
      }
   }
}

4

প্রত্যেকের gradle.ktsজন্য সাধারণ build.gradleফাইলের সাথে মেলে নিম্নলিখিতগুলি ব্যবহার করুন

build.gradle.kts

afterEvaluate {
        tasks.withType(JavaCompile::class) {
            options.compilerArgs.add("-Xlint:unchecked")
            options.compilerArgs.add("-Xlint:deprecation")
        }
    }

build.gradle

 gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }

3

সেট করার জন্য আমার একটি আলাদা সংকলন যুক্তি ছিল। নিম্নলিখিত আমার জন্য কাজ করে।

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-XDignore.symbol.file"
        options.bootClasspath = "$System.env.JAVA_HOME/jre/lib/rt.jar"
    }
}

অনিরাপদ এবং সূর্য.সুইং। * ক্লাসের মতো জিনিসের জন্য আপনাকে জেডিকে 1.8 এবং তারপরের জন্য বুট ক্লাসপথ সেট করতে হবে। বিশেষ করে পরবর্তীকালের জন্য উত্স কোডটি ঠিক করুন, কারণ জেআরআর জন্য জাগো জাভা 9, আপ এবং আগত মডুলারালিটি বাস্তবায়ন শেষ পর্যন্ত এই পদ্ধতিগুলিকে অ্যাক্সেসযোগ্য করে তুলবে (!)। নিজেকে সতর্ক করে বিবেচনা করুন।


0

আমি নিশ্চিত না যে গ্রেডল subprojectsকনফিগারেশন প্যারামিটারটি ব্যবহার করার বিষয়ে সমস্যা ছিল তবে আপনি যে বাক্য গঠনটি ব্যবহার করেছেন তা:

options.compilerArgs << "-Xlint:unchecked -Xlint:deprecation"

এটি আমার পক্ষে কাজ করেছে:

subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs += [
        '-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
        '-Xlint:deprecation', // Shows information about deprecated members.
      ]
    }
  }
}

অথবা

subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  }
}

আপনি যদি কেবলমাত্র একটি বিকল্প যুক্ত করতে চান (আপনি সাধারণত আরও যোগ করবেন), কার্যটির ভিতরে JavaCompileআপনাকে কেবল যুক্ত করতে হবে:

options.compilerArgs << "-Xlint:unchecked"

আপনি লিন্ট সম্পর্কে আরও তথ্য এখানে এবং এখানে পেতে পারেন

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