任何人都可以帮我解决这个问题!昨天它正在运行,但是今天早上我再次运行我的应用程序时,它无法运行。
这是我的 build.gladle ...
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
repositories {
mavenCentral()
}
defaultConfig {
applicationId "com.brandtechnosolutions.petbaazar"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'com.google.android.gms:play-services:9.8.0'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile 'com.android.support:support-v4:25.1.0'
compile `enter code here`'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
testCompile 'junit:junit:4.12'
}
我试过用这个......
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 23
...
// Enabling multidex support.
multiDexEnabled true
}
这......
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
然后又出现了一个新错误......
在父级或祖先中找不到方法logIn(View)在视图类中定义的android:onClick属性的上下文
这是 MainActivity ...
中的logIn()方法void logIn(View view) { //called when log in button pressed
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent); // start web activity
}
即时运行在android studio中无效...显示错误:
任务执行失败':app:clean'。无法删除文件
当我启用即时运行时。请帮忙!
答案 0 :(得分:0)
问题是你的onClick方法不是public
。我认为错误与multiDex无关。将签名更改为:
public void logIn(View view)...
答案 1 :(得分:0)
尝试添加
android{
...
dexOptions {
javaMaxHeapSize "4g"
}
}
答案 2 :(得分:0)
我最近遇到了同样的问题。如果应用程序包含太多方法调用,则必须使其成为Multidex应用程序。但是,我认为你真的不需要这样做。
在你的app.gradle中你有一行compile 'com.google.android.gms:play-services:9.8.0'
,它基本上采用了WHOLE play服务模块,这个模块非常庞大。我想你的应用程序也需要永久构建。
因此,删除常规播放服务依赖项(但如果需要,请保留compile 'com.google.android.gms:play-services-appindexing:9.8.0'
)并添加可能需要在依赖项列表结束后添加以下行apply plugin: 'com.google.gms.google-services'
。
然后你可以删除所有的multidex垃圾:)
答案 3 :(得分:0)
问题解决了,这就是我所做的......
将其添加到build.gradle
dexOptions {
javaMaxHeapSize "1g"
}
和...
multiDexEnabled true
并将onClick方法更改为public ...
void logIn(View view) { //called when log in button pressed
Intent intent = new Intent(MainActivity.this, LoginActivity.class);
startActivity(intent); // start web activity
}
我实际上并不知道其中哪些确实有效,我一起思考!
非常感谢你们的时间和帮助,非常感谢!