2014-03-24 102 views
0

我打算在市场上发布我的应用程序。但是当我签下我的apk并安装它之后,我甚至在加载一个活动之前发生崩溃。我所在的下面的错误在logcat的签署的Android应用程序崩溃

03-24 14:57:03.080: E/AndroidRuntime(4310): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.golfboxdk/com.golfboxdk.LoginActivity}: 
java.lang.ClassNotFoundException: Didn't find class "com.golfboxdk.LoginActivity" on path: DexPathList[[zip file "/data/app/com.golfboxdk-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.golfboxdk-1, /vendor/lib, /system/lib]] 

我检查了我的表现,我真的什么错无法弄清楚。当我使用未签名的apk时,我的应用程序运行平稳。

这是我已经尝试过我的清单

package="com.golfboxdk" 
android:versionCode="5" 
android:versionName="1.7.2" > 

<uses-sdk 
    android:minSdkVersion="9" 
    android:targetSdkVersion="17" /> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

<application 
    android:name="com.golfboxdk.utils.GolfBoxApplication" 
    android:allowBackup="false" 
    android:icon="@drawable/app_icon" 
    android:killAfterRestore="true" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Light.NoTitleBar" > 
    <activity 
     android:name="com.golfboxdk.LoginActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTop" 
     android:screenOrientation="portrait" > 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

事情的开始: 启用下的所有文件 - >项目 - >属性 - > Java构建路径 - >订单和专家,然后用干净的。 检查ProGuard是否被激活(不是)

+3

我认为你应该检查proguard设置。它不会在调试版本上运行,而是在版本上运行。 – Leonidos

+0

是的,除非你从陈旧的源代码构建它,它看起来像proguard可能会抛出你的活动名称*,或它取决于*的东西的名称。我相信proguard提供了一个报告文件,详细说明它做了什么,或者你也可以考虑通过反编译器运行你的签名的apk来查看实际发生的事情。在依赖关系中断的情况下,可能会在app install/dexopting期间在logcat中生成消息,这可能会提供一些线索。 –

+0

嗨, 这种情况对我来说太多了,我使用Eclipse来导出应用程序,每当我导出它,我要做的第一件事就是检查它是否运行! 当我得到这样的异常,每3次导出一次就发生一次,我只需重新导出应用一次或两次,直到它正确运行。 我frnakly不知道为什么会发生,我没有试图挖掘了解。我一直认为这是因为应用程序的大小(apk大约是6Mo)。 我希望这可以帮助,也有兴趣弄清楚这一点。 – KLiFF

回答

8

尝试以下操作:

  1. 项目>取消选中自动构建
  2. 清洁工作区
  3. 手动构建项目
  4. 签署APK,它通过蓝牙/ WIFI /电子邮件发送到设备,等
  5. 测试它,如果它工作,将其释放
+0

我会试一试 – user2408952

+0

我会等待;) –

+0

OV YES!但为什么这个工作?非常感谢 – user2408952

0

我以前用Eclipse/ADT有过这个问题。有时,它似乎没有正确打包APK。

通常情况下,清理并生成,然后再次导出已签名的APK会为我修复它。

+0

试过这个,没有帮助 – user2408952

0

没有人说proguard会有问题,但只有this解决了我的问题。