我真的很困惑和沮丧因为我无法理解如何导入我的android库项目作为我的应用程序项目的依赖项.
我尝试在线查找并建议大多数答案转到我的应用程序的项目结构,然后单击"+"然后单击"导入模块"
但Android Studio 0.3.4 - 0.5.2没有显示任何选项,当我点击"+"时,它只显示新模块的窗口.
我做错了什么或什么?
救命!!!
android android-library android-studio android-gradle-plugin
首先,请注意,我不期待why do you want to obfuscate library评论。这是我要问的真正问题。
我在使用 Kotlin 编写的 Android 库处理 R8/混淆时遇到了问题。
我有一个带有注释的公共 API 方法,@JvmStatic该方法将 aLambda作为参数。
例如,看看下面的代码,
typealias MyLambdaCallback = (String, Map<String, Any>) -> Unit
@Keep
object MyApi {
private var callback: MyLambdaCallback? = null
@JvmStatic
fun setCallback(callback: MyLambdaCallback) {
this.callback = callback
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了@Jvmstatic以便Java调用代码可以静态调用该方法而不是执行MyApi.INSTANCE.setCallback()
当我松开图书馆没有minification,一切都很好,并调用代码来自Java和Kotlin预期被写入。
但是现在我想在打开时释放库minification。
这就产生了一个问题。
这是错误
java.lang.IncompatibleClassChangeError: 方法 'void setCallback(kotlin.jvm.functions.Function2)' 预期为虚拟类型,但被发现为静态类型(出现 'com.demo.basic.Application' 声明在/data/app/com.demo.basic-_0uJXPbtfs3UZ2Rp2h-RdQ==/base.apk!classes2.dex)
我是在某处犯了错误还是预期这是某种限制?
我尝试了什么?
删除 …
我刚刚从1.0.0更新了Android Gradle插件到1.1.0,我收到了这个错误:
没有方法签名:com.android.build.gradle.LibraryPlugin.getNdkFolder()适用于参数类型:()值:[]
我试图找到gradle插件1.0.0到1.1.0的差异,但无法在网上找到任何地方.
似乎getNdkFolder方法已被更改或删除.
有替代品吗?或者任何其他方式获得NdkFolder?
我正在使用这样的方法,
def ndkDir = project.plugins.findPlugin('com.android.library').getNdkFolder()
我还针对Android问题跟踪器中的工具团队提出了问题:https://code.google.com/p/android/issues/detail? id = 152810
谢谢 !
android android-ndk android-build android-studio android-gradle-plugin
我的重新序列化为 "{"2":"Hello","Tesst":"Value"}"
我尝试将此字符串解析为 Map<String,String>
val resialized = readFile(createStorageDirectoryPath(getManifestFilePath()), MANIFEST_FILE_NAME, errorOut)
manifest = Json.decodeFromString(/*serializer*/, resialized)
Run Code Online (Sandbox Code Playgroud)
如何为 Map<String,String> 创建序列化程序