我创建了新的android项目,并在项目内部创建了新的库模块(网络)。
现在我们有了应用程序(默认模块)和网络模块。
在网络模块内部,我有凌空依赖,这在应用程序模块中不存在。
创建Kotlin类并在网络模块中定义此方法
/ *网络模块* /
// build.gradle
实现'com.android.volley:volley:1.1.1'
class VolleyUtils {
fun enableLog() {
VolleyLog.DEBUG = true
}
}
从网络模块创建AAR并放置在应用程序模块内部
/ *应用模块* /
// build.gradle
应用程序模块中的实现文件('libs / network-release.aar')
class MainActivity : AppCompatActivity() {
super.onreate(saveInstanceState)
setContentView(R.layout.activity_main)
//access method in network module
VolleyUtils().enableLog()
}
}
结果:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/android/volley/VolleyLog;
at com.test.volleynetwork.VolleyUtils.enableLog(VolleyUtils.kt:8)
at com.test.base.MainActivity.onCreate(MainActivity.kt:12)
at android.app.Activity.performCreate(Activity.java:7144)
at android.app.Activity.performCreate(Activity.java:7135)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2932)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3087)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1817)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6746)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.volley.VolleyLog" on path: DexPathList[[zip file "/data/app/com.test.base-LKNAponHFP3pH9lW8RU9sQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.test.base-LKNAponHFP3pH9lW8RU9sQ==/lib/arm64, /system/lib64, /product/lib64]]
请指导我哪里出问题了。
在应用程序的build.gradle中添加以下内容:
implementation(project(":Name_of_your_network_module"))
注意:请在开头保留“:”。
尝试将Volley
中的Network Module
依赖项从implementation
更改为api
。