আমি কিছুক্ষণ তদন্ত করেছি এবং সম্ভবত এখানে আড় এবং ট্রানজিটিভ নির্ভরতা সম্পর্কিত সর্বাধিক জনপ্রিয় উত্তরগুলি দেখেছি তবে কীভাবে এটি কাজ করবেন তা আমার পক্ষে এখনও পরিষ্কার নয়।
সুতরাং:
প্রদত্ত গ্রেড কনফিগার সহ আমার অ্যান্ড্রয়েড লাইব্রেরি রয়েছে:
apply plugin: 'android-library'
apply plugin: 'android-maven'
version = "1.0.0"
group = "com.somepackage"
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
classpath 'com.github.dcendents:android-maven-plugin:1.0'
}
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 10
}
}
repositories {
maven { url 'http://www.bugsense.com/gradle/' }
}
dependencies {
provided 'com.google.android.gms:play-services:+'
provided 'com.android.support:appcompat-v7:+'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.bugsense.trace:bugsense:3.6'
compile 'commons-net:commons-net:3.3'
}
তারপর আমি এটা দিয়ে স্থানীয় ম্যাভেন রেপো নিয়োজনের করছি gradle install
। মোতায়েন করা লাইব্রেরির POM ফাইলটি দেখতে এমন দেখাচ্ছে:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sprezzat</groupId>
<artifactId>app</artifactId>
<version>1.0.0</version>
<packaging>aar</packaging>
<dependencies>
<dependency>
<groupId>com.bugsense.trace</groupId>
<artifactId>bugsense</artifactId>
<version>3.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
এবং অবশেষে উপরের লাইব্রেরিটিকে নির্ভরতা হিসাবে ব্যবহার করে আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটির গ্রেড কনফিগারেশন:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
mavenLocal()
}
android {
compileSdkVersion 15
buildToolsVersion "19.0.2"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
}
dependencies {
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:appcompat-v7:+'
compile 'com.somepackage:LIBRARY_NAME:1.0.0@aar'
}
এবং ফোনে অ্যাপ্লিকেশন স্থাপনের পরে আমি NoClassDefFoundError
আমার অ্যান্ড্রয়েড লাইব্রেরির নির্ভরতা সংকলন সম্পর্কিত ক্লাসগুলি পাচ্ছি।
আমার অ্যান্ড্রয়েড অ্যাপ্লিকেশন নির্ভরতাগুলি পরীক্ষা করে এটি ব্যবহার করে gradle dependencies
:
apk - Classpath packaged with the compiled main classes.
+--- com.google.android.gms:play-services:+ -> 4.3.23
| \--- com.android.support:support-v4:19.0.1 -> 19.1.0
+--- com.android.support:appcompat-v7:+ -> 19.1.0
| \--- com.android.support:support-v4:19.1.0
\--- com.somepackage:LIBRARY_NAME:1.0.0
উপরের গাছ অনুসারে, সমস্ত ট্রানজিটিভ নির্ভরতা সনাক্ত করা যায় না। সমস্যাটি কোথায় এবং কীভাবে এটি সঠিকভাবে করা উচিত?
gradle dependencies
আপনার অ্যাপ্লিকেশনটির জন্য চলমান আউটপুট পরীক্ষা করেছেন ?