- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
升级到 Android Studio 1.0.2 会导致签名的发布 apk 文件在应用程序启动后立即崩溃(调试 apk 工作正常)。
将 **minifiyEnabled 设置为 false ** 可修复签名发布 apk 文件中的崩溃问题。
build.gradle(Module:app) 文件的 buildTypes 部分如下所示
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
行 getDefaultProguardFile 似乎是嫌疑犯,因为 android studio 显示下划线 getDefaultProguardFile 并且当将鼠标悬停在它上面时显示警告 Cannot resolve symbol getDefaultProguardFile.
以下是build.gradle(project)文件
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
mavenCentral()
}
}
以下是build.gradle(app)文件内容
apply plugin: 'android'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 9
targetSdkVersion 17
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.1.+'
}
更新 1:
There are some warning in the gradle build
Executing tasks: [:app:assembleRelease]
Configuration on demand is an incubating feature.
:app:preBuild
:app:preReleaseBuild
:app:checkReleaseManifest
:app:preDebugBuild
:app:prepareComAndroidSupportAppcompatV72103Library
:app:prepareComAndroidSupportSupportV42103Library
:app:prepareComGoogleAndroidGmsPlayServices6171Library
:app:prepareReleaseDependencies
:app:compileReleaseAidl
:app:compileReleaseRenderscript
:app:generateReleaseBuildConfig
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets
:app:generateReleaseResValues
:app:generateReleaseResources
:app:mergeReleaseResources
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/src/main/res/drawable/bell_48_48.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
/home/hhk/src/android_project/govinda_suprabhatam_alarm/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.3/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png: libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
:app:processReleaseManifest
:app:processReleaseResources
:app:generateReleaseSources
:app:compileReleaseJava
Note: /home/hhk/src/android_project/govinda_suprabhatam_alarm/app/src/main/java/com/suprabhatam/alarm/MainActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:app:lintVitalRelease
:app:compileReleaseNdk
:app:preDexRelease
:app:dexRelease
:app:processReleaseJavaRes UP-TO-DATE
:app:validateExternalOverrideSigning
:app:packageRelease
:app:zipalignRelease
:app:assembleRelease
BUILD SUCCESSFUL
Total time: 41.768 secs
adb logcat的相关错误信息如下
D/dalvikvm( 326): threadid=1: interp stack at 0x41c23000
E/AndroidRuntime(32767): FATAL EXCEPTION: main
E/AndroidRuntime(32767): java.lang.NullPointerException
E/AndroidRuntime(32767): at com.suprabhatam.alarm.MainActivity.onCreateOptionsMenu(Unknown Source)
E/AndroidRuntime(32767): at android.app.Activity.onCreatePanelMenu(Activity.java:2508)
E/AndroidRuntime(32767): at android.support.v4.app.o.onCreatePanelMenu(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.e.a(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.g.a(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.ActionBarActivityDelegateBase.b(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.ActionBarActivityDelegateBase.d(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.ActionBarActivityDelegateBase.a(Unknown Source)
E/AndroidRuntime(32767): at android.support.v7.app.h.run(Unknown Source)
E/AndroidRuntime(32767): at android.os.Handler.handleCallback(Handler.java:800)
E/AndroidRuntime(32767): at android.os.Handler.dispatchMessage(Handler.java:100)
E/AndroidRuntime(32767): at android.os.Looper.loop(Looper.java:194)
E/AndroidRuntime(32767): at android.app.ActivityThread.main(ActivityThread.java:5391)
E/AndroidRuntime(32767): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(32767): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(32767): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
E/AndroidRuntime(32767): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
E/AndroidRuntime(32767): at dalvik.system.NativeStart.main(Native Method)
V/Provider/Settings( 554): from settings cache , name = dropbox:data_app_crash , value = null
D/dalvikvm( 554): create interp thread : stack size=128KB
....
....
D/PowerManagerService( 554): updateScreenStateLocked: mDisplayReady=true, newScreenState=2, mWakefulness=1, mWakeLockSummary=0x1, mUserActivitySummary=0x1, mBootCompleted=true
D/PowerManagerService( 554): handleSandman: canDream=true, mWakefulness=Awake
V/Provider/Settings( 554): from settings cache , name = anr_show_background , value = null
V/ActivityManager( 554): Broadcast: Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } ordered=false userid=0 callerApp=ProcessRecord{41c6a9c0 554:system/1000}
D/AES ( 554): ExceptionLog: notify aed
D/AES ( 554): process : com.suprabhatam.alarm
D/AES ( 554): module : com.suprabhatam.alarm v1 (1.0)
D/AES ( 554):
D/AES ( 554): cause : data_app_crash
D/AES ( 554): pid : 32767
D/AEE/LIBAEE( 554): shell: raise_exp(2, 32767, -1361051648, com.suprabhatam.alarm, 0x0x61e05008, 0x0x0)
....
....
D/AEE/AED ( 122): p 4 poll events 1 revents 0
D/AEE/AED ( 122): not know revents:0
D/dalvikvm(32767): DexOpt: --- END 'ads714289260.jar' (success) ---
D/dalvikvm(32767): DEX prep '/data/data/com.suprabhatam.alarm/cache/ads714289260.jar': unzip in 1ms, rewrite 87ms
V/WindowManager( 554): Changing focus from Window{421f4cd0 u0 com.suprabhatam.alarm/com.suprabhatam.alarm.MainActivity} to Window{427208a0 u0 Application Error: com.suprabhatam.alarm}
I/WindowManager( 554): Gaining focus: Window{427208a0 u0 Application Error: com.suprabhatam.alarm}
D/dalvikvm(32767): create interp thread : stack size=128KB
....
....
I/BufferQueue( 129): [unnamed-129-849](this:0x4153dc80,api:0) setSynchronousMode: enabled=1
I/BufferQueue( 129): [unnamed-129-849](this:0x4153dc80,api:0) setDefaultBufferSize: w=1, h=1
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:0) setConsumerName: Application Error: com.suprabhatam.alarm
D/KeyguardViewMediator( 554): setHidden false
D/KeyguardUpdateMonitor( 554): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor( 554): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator( 554): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator( 554): handleMessage exit msg name=SET_HIDDEN
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:0) setDefaultBufferSize: w=480, h=220
I/BufferQueue( 129): [com.lenovo.launcher/com.lenovo.launcher2.Launcher](this:0x41542040,api:0) consumerDisconnect
I/BufferQueue( 129): [com.lenovo.launcher/com.lenovo.launcher2.Launcher](this:0x41542040,api:0) ~BufferQueue
I/GraphicBuffer( 129): free buffer (w:480 h:854 f:1) handle(0x43662f78)
D/KeyguardViewMediator( 554): setHidden false
D/KeyguardUpdateMonitor( 554): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor( 554): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator( 554): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator( 554): handleMessage exit msg name=SET_HIDDEN
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:0) connect: api=2
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:2) setSynchronousMode: enabled=1
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:2) new GraphicBuffer needed
D/BufferQueue( 129): [OLD] gb:NULL
I/GraphicBuffer( 129): allocate buffer (w:480 h:220 f:1) handle(0x414f7050) err(0)
I/BufferQueue( 129): [NEW] gb=0x41523678, handle=0x414f7050, w=480, h=220, s=480, fmt=1
D/GraphicBuffer( 554): create handle(0x636639d0) (w:480, h:220, f:1)
D/KeyguardViewMediator( 554): setHidden false
D/KeyguardUpdateMonitor( 554): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor( 554): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator( 554): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator( 554): handleMessage exit msg name=SET_HIDDEN
I/SurfaceTexture( 129): [Application Error: com.suprabhatam.alarm](this:0x41521b80,api:2) [void* android::SurfaceTexture::createImage(EGLDisplay, const android::sp<android::GraphicBuffer>&)]
....
....
V/webcore (24597): webkitDraw NEW_PICTURE_MSG_ID
V/webview (24597): NEW_PICTURE_MSG_ID
D/webkit/webview(24597): setNewPicture::start
D/webkit/webview(24597): setNewPicture::processing 111
D/KeyguardViewMediator( 554): setHidden false
D/KeyguardUpdateMonitor( 554): sendKeyguardVisibilityChanged(true)
D/KeyguardUpdateMonitor( 554): handleKeyguardVisibilityChanged(1)
D/KeyguardViewMediator( 554): handleMessage enter msg name=SET_HIDDEN
D/KeyguardViewMediator( 554): handleMessage exit msg name=SET_HIDDEN
W/ActivityManager( 554): Activity pause timeout for ActivityRecord{41c6b7a8 u0 com.suprabhatam.alarm/.MainActivity}
V/ActivityManager( 554): Enqueueing pending finish: ActivityRecord{41c6b7a8 u0 com.suprabhatam.alarm/.MainActivity}
....
....
I/alpha ( 804): AppContentView == draw +++1.0
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:2) new GraphicBuffer needed
D/BufferQueue( 129): [OLD] gb:NULL
I/GraphicBuffer( 129): allocate buffer (w:480 h:220 f:1) handle(0x41543e88) err(0)
I/BufferQueue( 129): [NEW] gb=0x43661a98, handle=0x41543e88, w=480, h=220, s=480, fmt=1
D/GraphicBuffer( 554): create handle(0x65525ad8) (w:480, h:220, f:1)
I/alpha ( 804): AppContentView == draw +++1.0
I/zdx2 ( 804): ----------------Workspace.updateChildrenLayersEnabled----true
I/zdx2 ( 804): ----------------Workspace.updateChildrenLayersEnabled----true
I/SurfaceTexture( 129): [Application Error: com.suprabhatam.alarm](this:0x41521b80,api:2) [void* android::SurfaceTexture::createImage(EGLDisplay, const android::sp<android::GraphicBuffer>&)]
D/SurfaceTexture( 129): GraphicBuffer: gb=0x43661a98 handle=0x41543e88
D/SurfaceTexture( 129): EGLImage: dpy=0x1, img=0x1000000b
I/alpha ( 804): AppContentView == draw +++1.0
D/MsensorDaemon( 333): Msensor deamon statr!!!!!!!!!!!!
D/MsensorDaemon( 333): open demon attr err = No such file or directory
I/alpha ( 804): AppContentView == draw +++1.0
I/alpha ( 804): AppContentView == draw +++1.0
....
....
D/SignalClusterViewGemini( 647): apply(). mIsAirplaneMode is false
D/NetworkControllerGemini( 647): PhoneStateListener:onDataActivity, sim0 after.
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:2) new GraphicBuffer needed
D/BufferQueue( 129): [OLD] gb:NULL
I/GraphicBuffer( 129): allocate buffer (w:480 h:220 f:1) handle(0x43661bf0) err(0)
I/BufferQueue( 129): [NEW] gb=0x41526478, handle=0x43661bf0, w=480, h=220, s=480, fmt=1
D/GraphicBuffer( 554): create handle(0x6294fd48) (w:480, h:220, f:1)
I/SurfaceTextureClient( 554): [STC::queueBuffer] (this:0x639270a0) fps:1.66, dur:1201.78, max:974.38, min:227.40
I/BufferQueue( 129): [Application Error: com.suprabhatam.alarm](this:0x4153dc80,api:2) [queue] fps:1.66, dur:1201.87, max:974.35, min:227.53
I/SurfaceTexture( 129): [Application Error: com.suprabhatam.alarm](this:0x41521b80,api:2) [void* android::SurfaceTexture::createImage(EGLDisplay, const android::sp<android::GraphicBuffer>&)]
MainActivity::onCreateOptionMenu方法定义为
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
MenuItem item = (MenuItem) menu.findItem(R.id.action_share);
ShareActionProvider shareAction = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
Intent shareIntent = new Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, "text")
.setType("text/plain");
shareAction.setShareIntent(shareIntent);
return true;
}
最佳答案
将以下规则添加到您的 proguard-rules.pro
文件中。
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
如果该文件不存在,您可以在 app/proguard-rules.pro
下创建它。请注意,如果您将 Android Studio 设置为“Android” View ,则该文件可能不会显示。您可能需要暂时切换到“项目” View 才能找到它。
关于Android Studio 1.0.2 "minifyEnabled true"使签名版本 apk 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199527/
我已经为我的 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 请求
我是一名优秀的程序员,十分优秀!