我刚刚完成了上一个android项目,但遇到了一个奇怪的问题。在我一直在使用该应用程序的所有时间里,我总是通过单击该绿色按钮在设备上运行它,并且运行良好。但是,既然我已经创建了应用程序的apk文件,它就可以毫无问题地安装在设备上,但是在我想启动该应用程序时,它崩溃了并且永远不会启动。
任何帮助将不胜感激。谢谢。
更新:依赖项:
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:support-vector-drawable:26.1.0'
implementation 'com.android.support:preference-v14:26.1.0'
implementation 'com.github.codekidX:storage-chooser:2.0.4.2'
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.3'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'android.arch.lifecycle:viewmodel:1.1.1'
implementation 'android.arch.lifecycle:extensions:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:cardview-v7:26.1.0'
ViewModel类:
private class MyImageViewModel: ViewModel(){
fun returnImagePath(): String{
return createdImageFile
//createdImageFile is a global string that contains the path of an image and its default value is ""
}
}
ViewModelUsage:
val model = ViewModelProviders.of(this).get(MyImageViewModel::class.java)
createdImageFile = model.returnImagePath()
if (createdImageFile != ""){
//do sth with the image file path
}
答案 0 :(得分:0)
解决方案:
代替:
val model = ViewModelProviders.of(this).get(MyImageViewModel::class.java)
写:
var model: MyImageViewModel()
然后
model = ViewModelProviders.of(this).get(MyImageViewModel::class.java)
尝试一下,希望它能工作。
答案 1 :(得分:0)
感谢所有尝试提供帮助的人,我找到了问题所在。这是一个愚蠢的事情。 ViewModel类不应是私有的!就是这样。