今天我将我的 android studio 3.5.3 更新到了 3.6。现在,我无法生成任何数据绑定类。Android studio 它自己生成数据绑定-iml 文件。
有没有人遇到过这样的问题?
Gradle wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
Run Code Online (Sandbox Code Playgroud)
项目级gradle文件:
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
}
Run Code Online (Sandbox Code Playgroud)
应用级gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'androidx.navigation.safeargs'
android {
dataBinding {
enabled = true
}
// Using Lambda Expressions
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
Run Code Online (Sandbox Code Playgroud)
gradle.properties:
kotlin.code.style=official
android.databinding.enableV2=true
kotlin.incremental=true
kapt.incremental.apt=true
Run Code Online (Sandbox Code Playgroud)
下面是我的活动和 XML 文件: 活动:
class ActivityMain : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { …Run Code Online (Sandbox Code Playgroud) 我正面临与SMP与Android集成的一个问题.我的问题是:当我尝试在Android OS 5.0和+设备中运行我的应用程序时,我收到下面提到的错误.
"Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sybase.mo.MessagingClientException" on path: DexPathList[[zip file
"/data/app/sample.UI.Droid-1/base.apk"],nativeLibraryDirectories=[/data/app/Sample.UI.Droid-1/lib/arm, /vendor/lib, /system/lib]]".**
Run Code Online (Sandbox Code Playgroud)
但它与Lollipop前设备配合良好.
完整日志位于以下链接:http: //pastebin.com/8kfhXDCT
目前,我在我的项目中使用可下载字体。参考链接:可下载字体。
它生成具有两个哈希值(dev 和 Prod)的认证文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="com_google_android_gms_fonts_certs">
<item>@array/com_google_android_gms_fonts_certs_dev</item>
<item>@array/com_google_android_gms_fonts_certs_prod</item>
</array>
<string-array name="com_google_android_gms_fonts_certs_dev">
<item>
[HASH]
</item>
</string-array>
<string-array name="com_google_android_gms_fonts_certs_prod">
<item>
[HASH]
</item>
</string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)
我的担忧是:
1)两个哈希键是如何生成的?他们使用密钥库来生成哈希密钥吗?
2)我们可以更改 Prod 的哈希键吗?将应用程序发布到 Play 商店后(创建签名的 apk 后)它会起作用吗?
android android-studio google-fonts android-downloadable-fonts
在 Android studio 3.6 中,创建新项目后,我无法为多个文件夹创建绑定生成的类。
我有多个布局文件夹:
res/layout
res/layouts/dashboard
res/layouts/notifications
Run Code Online (Sandbox Code Playgroud)
我能够为
资源/布局
但它不适用于其他布局文件夹。
应用程序gradle文件:
dataBinding{
enabled = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
res.srcDirs =
[
'src/main/res/layouts/notification',
'src/main/res/layout/dashboard',
'src/main/res/layouts',
'src/main/res/layout',
'src/main/res'
]
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
}
}
Run Code Online (Sandbox Code Playgroud)
资源文件夹结构:
我附上了我在 android studio 3.6 中创建的示例项目。 源代码链接
data-binding android android-databinding android-sourcesets android-studio-3.6