class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivitySecondBinding.inflate(layoutInflater)
setContentView(binding.root)
// 引用 library工程下的 MyLibrary
Log.e(“xwy–>”, “MyLibrary.className:${MyLibrary.className}”)
Log.e(“xwy–>”, “MyLibrary.commonClassName:${MyLibrary.commonClassName}”)
}
}
在app
工程中添加对mylibrary
的依赖
dependencies {
implementation ‘com.xwy.test:mylibrary:1.0.0’
…
}
运行结果
2021-10-16 13:53:11.019 29302-29302/com.example.testactivitytask E/xwy–>: MyLibrary.className:MyLibrary.java
2021-10-16 13:53:11.019 29302-29302/com.example.testactivitytask E/xwy–>: MyLibrary.commonClassName:CommonLibrary.java
一切正常
调试模式场景
在app
工程中添加对commonlibrary工程的源码依赖
dependencies {
implementation project(path: ‘:commonlibrary’)
// mylibrary aar 会传递依赖 commonlibrary aar
implementation ‘com.xwy.test:mylibrary:1.0.0’
…
}
修改commonlibrary工程代码
public class CommonLibrary {
public static String className = “CommonLibrary.java–>update”;
}
运行程序,会发现修改的源码没有生效。
执行gradlew build --refresh-dependencies
会显示如下的错误
Type com.example.commonlibrary.BuildConfig is defined multiple times:
/Users/xuweiyu/Work/TestActivityTask/commonlibrary/build/
.transforms/5da046d126b3df77c21768d16a3e3ca0/classes/classes.dex,
/Users/xuweiyu/Work/TestActivityTask/app/build/intermediates/external_libs_dex
/release/mergeExtDexRelease/classes.dex
解释一下这个错误,错误原因为dex文件合并的时候发现有多个com.example.