我最近遇到了Android应用程序的问题,我无法弄清楚发生了什么。 我正在通过Eclipse开发和测试我的应用程序,一切正常。 然后是时候将它发布在PlayStyore上(版本1.0已经在几小时前发布)。 所以我清理了我的工作区,并通过“Android Tools =>导出已签名的应用程序包”对APK进行了签名,并将.apk上传到GooglePlay上。 上传过程完成没有任何问题。 当应用程序(1.0.1)在PlayStore上发布时,我尝试下载它并将其安装在我的手机上。它下载很好,但应用程序崩溃1秒后,甚至没有出现第一个屏幕。 (但是我的设备连接到Eclipse时工作正常,我也通过电子邮件在手机上发送apk并从那里安装,没问题)
安装新应用程序版本的每个人都无法启动它......
以下是我在GooglePlay上可以看到的日志
java.lang.RuntimeException:无法实例化应用程序 be.example.ex.Ex:java.lang.ClassNotFoundException:没找到类 路径上的“be.example.ex.Ex”:/ data / app / be.example.ex-2.apk at android.app.LoadedApk.makeApplication(LoadedApk.java:509)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4657) 在android.app.ActivityThread.access $ 1400(ActivityThread.java:159)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1376) 在android.os.Handler.dispatchMessage(Handler.java:99)at android.os.Looper.loop(Looper.java:176)at android.app.ActivityThread.main(ActivityThread.java:5419)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:525)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1046) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)at dalvik.system.NativeStart.main(Native方法)引起: java.lang.ClassNotFoundException:没有找到类“be.example.ex.Ex” 在路径上:/data/app/be.example.ex-2.apk at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64) 在java.lang.ClassLoader.loadClass(ClassLoader.java:501)at java.lang.ClassLoader.loadClass(ClassLoader.java:461)at android.app.Instrumentation.newApplication(Instrumentation.java:992) 在android.app.LoadedApk.makeApplication(LoadedApk.java:504)... 11 更
所以我在SO上阅读了几篇文章,我再次清理了我的项目,取消了项目库的链接,然后再将它们链接起来。 我发布了新的APK,(1.0.2),希望一切正常,用户可以在从PlayStore下载后启动它。
现在我有另一个版本要发布,我就是无法解决同样的问题。现在有更多人下载了应用程序,我无法承受应用程序在每个用户的手机上崩溃。
有没有办法避免以前的问题?也许是一个检查apk是否已正确构建的工具?
请注意,这是我第一次收到此错误,而且我已经发布了一些没有任何问题的应用。我每次发布新版本时都会感到害怕,所以如果有人能给我一个建议,以确保这种情况再也不会发生,那就太好了:)
提前致谢!
答案 0 :(得分:1)
<activity
android:name="com.example.test.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
com.example.test.MainActivity应该正确声明
答案 1 :(得分:1)
最好的办法是检查eclipse制作的apk。有时,我在谷歌游戏商店新发布之前有同样的问题,我在手机上测试我的apk。只需使用以下命令行。
adb install pathToMyApk.apk