- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 android studio 3.6.1 的 android 项目。当我从 Android Studio 生成 apk 时,生成的 APK 文件缺少 META-INF/MANIFEST.MF 文件。但是,当我通过控制台构建 apk 时,一切正常。
我不确定 build.gradle 中的哪些设置控制此文件的创建以及创建时间。在这方面的任何帮助将不胜感激。
在我的build.gradle文件中进行
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta09'
classpath 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09'
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply from: '../config/quality.gradle'
apply plugin: 'com.github.spotbugs'
project.extensions.extraProperties.set('SpotBugsTask', com.github.spotbugs.SpotBugsTask)
// loads the current project's local settings file
Properties localProperties = new Properties()
def localPropertiesFile = project.file('../local.properties')
if (localPropertiesFile.exists()) {
localProperties.load(new FileInputStream(localPropertiesFile))
localProperties.list(System.out)
}
android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
tasks.withType(Test) {
// pass the proxy configuration to the gradle test executor
systemProperty "http.proxyHost", System.getProperty('http.proxyHost')
systemProperty "http.proxyPort", System.getProperty('http.proxyPort')
systemProperty "http.proxyUser", System.getProperty('http.proxyUser')
systemProperty "http.proxyPassword", System.getProperty('http.proxyPassword')
systemProperty "https.proxyHost", System.getProperty('https.proxyHost')
systemProperty "https.proxyPort", System.getProperty('https.proxyPort')
systemProperty "https.proxyUser", System.getProperty('https.proxyUser')
systemProperty "https.proxyPassword", System.getProperty('https.proxyPassword')
}
def appName = "app_name"
def appIdSuffix = ""
if (project.hasProperty('appSuffix') && appSuffix ==~ /^[a-zA-Z0-9]*$/) {
println("Appending suffix: " + appSuffix)
appIdSuffix = appSuffix
}
compileSdkVersion parent.ext.androidCompileSdkVersion
buildToolsVersion parent.ext.androidBuildToolsVersion
testOptions {
unitTests {
includeAndroidResources = true
}
animationsDisabled = true
unitTests.returnDefaultValues = true
unitTests.all {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
systemProperty "testResponse", "${projectDir}/src/testServerDebug/res/raw"
testLogging {
showStackTraces = true
exceptionFormat = "full"
events 'passed', 'failed', 'skipped'
}
maxHeapSize = "4g"
}
execution 'ANDROIDX_TEST_ORCHESTRATOR'
}
android {
lintOptions {
warning "TrustAllX509TrustManager"
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
main.java.srcDirs += 'src/production/kotlin'
main.java.srcDirs += 'src/server/kotlin'
test.java.srcDirs += 'src/test/kotlin'
test.java.srcDirs += 'src/testServerDebug/kotlin'
test.java.srcDirs += 'src/testServerDebug/java'
androidTest.java.srcDirs += 'src/androidTest/kotlin'
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/app_serverRelease.kotlin_module'
}
defaultConfig {
minSdkVersion parent.ext.androidMinSdkVersion
targetSdkVersion parent.ext.androidTargetSdkVersion
multiDexEnabled true
versionCode 1
versionName "1.0.0"
vectorDrawables.useSupportLibrary = true
}
signingConfigs {
debug {
storeFile file("keystore.jks")
storePassword "test"
keyAlias "test"
keyPassword "test"
}
}
buildTypes {
release {
debuggable false
minifyEnabled false
shrinkResources false
multiDexEnabled false
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
} else {
signingConfig signingConfigs.debug
}
proguardFile getDefaultProGuardFile('proguard-release.pro')
proguardFile getDefaultProGuardFile('proguard-androidx.pro')
proguardFile 'proguard-project.pro'
}
debug {
testCoverageEnabled false
ext.enableCrashlytics = false
signingConfig signingConfigs.debug
}
}
flavorDimensions "default"
productFlavors {
production {
dimension "default"
}
server {
dimension "default"
applicationIdSuffix ".server" + appIdSuffix
resValue "string", appName, appIdSuffix
}
}
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries false
}
}
dependencies {
serverImplementation('com.github.tomakehurst:wiremock:2.8.0') {
exclude group: 'com.fasterxml.jackson.core'
exclude group: 'com.google.guava'
exclude group: 'org.apache.httpcomponents'
exclude group: 'org.ow2.asm', module: 'asm'
}
def nav_version = "1.0.0"
implementation "android.arch.navigation:navigation-fragment:$nav_version"
implementation "android.arch.navigation:navigation-ui:$nav_version"
implementation "androidx.core:core-ktx:1.2.0"
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0"
implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutine"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutine"
kaptAndroidTest 'org.parceler:parceler:1.1.12'
testImplementation 'joda-time:joda-time:2.9.6'
testImplementation 'junit:junit:4.12'
testImplementation 'org.powermock:powermock-api-easymock:1.6.2'
testImplementation 'org.powermock:powermock-core:1.6.2'
testImplementation 'org.powermock:powermock-module-junit4:1.6.2'
testImplementation 'org.powermock:powermock-api-mockito:1.6.2'
testImplementation('org.robolectric:robolectric:4.2') {
exclude group: 'com.google.guava'
}
testImplementation 'org.apache.commons:commons-lang3:3.6'
testImplementation('org.mockito:mockito-all:1.10.19') {
exclude group: 'org.hamcrest', module: 'hamcrest-core'
}
testImplementation 'org.mockito:mockito-all:1.10.19'
testImplementation('com.squareup:fest-android:1.0.8') {
exclude group: 'com.android.support', module: 'support-v4'
}
testImplementation 'androidx.test:core:1.2.0'
testImplementation 'androidx.test.ext:junit:1.1.1'
testImplementation 'org.apache.httpcomponents:httpclient:4.5.6'
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation 'com.capitalone.easyscreenshots:easyscreenshots:1.1.0@aar'
androidTestImplementation 'com.jraska:falcon:2.1.1'
androidTestImplementation('androidx.test.espresso:espresso-core:3.2.0') {
exclude module: 'support-annotations'
}
androidTestImplementation('androidx.test:runner:1.2.0') {
exclude module: 'support-annotations'
}
androidTestImplementation('androidx.test:rules:1.2.0') {
exclude module: 'support-annotations'
}
androidTestImplementation('androidx.test.espresso:espresso-intents:3.2.0') {
exclude module: 'design'
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat'
}
androidTestImplementation('androidx.test.espresso:espresso-contrib:3.2.0') {
exclude module: 'design'
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat'
}
androidTestImplementation('androidx.test.espresso:espresso-web:3.2.0') {
exclude module: 'design'
exclude module: 'support-annotations'
exclude module: 'support-v4'
exclude module: 'recyclerview-v7'
exclude module: 'appcompat'
}
}
apply plugin: 'com.google.gms.google-services'
最佳答案
我遇到了同样的问题。它不能通过 Android Studio 工作,也不能直接从终端构建。我已经通过添加解决了它
signingConfigs {
myDefaultSigningConfigs {
...
v1SigningEnabled true
}
}
希望对你有所帮助。
关于通过 Android Studio 生成的 Android APK 缺少 MANIFEST.MF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61191763/
我已经为我的 Android 应用设置了 Google Play 测试版程序。想象一下以下场景: 我将 apk1 作为 versionCode 1 的测试版发布 Beta 用户安装此 Beta 版本
我需要在 android studio 中生成一个未签名的 APK。我看到了其他一些关于此的问题。 Export unsigned apk from a Gradle Project in Andro
我想知道更新是如何进行的?它如何更新特定文件仅更改?我的意思是在更新期间,整个 apk 是否再次安装或仅特定文件更改?它是如何工作的?我只想知道 android market 如何在没有用户提示的情况
如何在使用新 apk 的情况下升级 android 应用程序而不丢失以前的 apk 数据? 最佳答案 有一个versionCode AndroidManifest.xml 中的元素。这是一个整数,每个
我看到 Android 在输出文件夹中同时创建了一个“普通”APK 和一个 androidTest APK? 即 app-dev-debug.apk app-dev-debug-androidTest
Upload failed You uploaded an APK that is signed with a different certificate to your previous APKs.
对我来说,这发生在所有项目中。当我从 Android Studio 生成签名的 apk 时,我收到以下正确消息: 问题:在此之后,当我实际上并没有生成签名的 apk 时,我继续为项目发生的每个构建收到
我需要在 Windows 上反编译 & 重新编译一个 apk... 我正在关注此链接 Reverse Engineer APK 问题是我找不到发出请求的文件(请参阅上面的链接)“找到发出请求的文件 g
我寻找一种方法来制作一个可以更改我的第一个 apk 的默认图标的 apk。例如 ADW Launcher。 我该怎么做?也许是一种获取另一个 apk 的绘图的方法? 感谢您的帮助。 最佳答案 我想您正
我正在开发一个基于图像的应用程序,具有以下属性: 手机版本的 apk 大小(不含图像)约为 15MB,平板电脑版本约为 25MB。 图像总大小约为 30MB。 该应用程序将以测试版状态发布,可能会频繁
假设在网站上我有一个 apk 和网站的在线 JSON 数据,现在依赖于那个 apk 我想用新的 JSON 数据重新生成新的 apk 文件,还需要Manifest文件中的应用图标也要动态变化,包名也要动
今天我注意到当我在 Eclipse 中导出我的应用程序时,我得到了一个无扩展名的文件。我过去没有注意到这一点,所以我将此文件作为我的应用程序的 APK 文件上传到 Google Play。当我今天看到
我有一个同时适用于手机/平板电脑和电视的应用程序。当我在电视上使用 leanback 时,这个项目由 3 个模块组成。第一个(库)包含电视和移动/平板电脑模块通用的所有类,然后我有电视和移动/平板电脑
我制作了一个仅包含微调器和按钮的基本应用程序,但它的 Release模式大小为 1.4 MB,我认为这太大了,因为也有很多低于 200kB 的好应用程序可用 所以我在 gradle 文件中尝试了 b
我的移动开发人员已向我提供了一个 APK 文件,我需要将其上传到商店。它说,你需要在 Release模式下编译它。有没有一种方法可以让我对 apk 执行此操作,使其进入 Release模式并使用 ke
我在里面制作了一个 android 应用程序,我已经在“res/raw”文件夹中放置了一个 apk 文件,现在我在安装我的 apk 时想要什么,raw 文件夹中的 apk 也会安装,而无需再次单击安装
我有一个带有未签名包的 android 应用程序,每当我尝试安装此 apk 时,都会出现以下错误消息:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]。 现
我开发的 Android 应用由不同的人群进行测试。 我们使用 Google Play Beta 方案。 同一组测试人员也提供生产支持。完成测试后,他们需要将设备恢复为生产应用,以便反射(reflec
我有一个已发布的应用程序。该应用程序使用 Google 的许可检查,因此为了测试该应用程序的新版本(使用测试帐户),必须在开发者控制台中上传 APK: 对于尚未上传到 Google Play 的应用程
我正在制作一个应用程序,我想在其中调用其他一些 apk(未预装),它们存在于我手机的 SD 卡中,我希望在安装主应用程序时安装它们。这可能吗?以及如何? 最佳答案 您可以使用以下 Intent 请求
我是一名优秀的程序员,十分优秀!