2012-03-27 104 views
1

我已经查看了大多数关于这个错误的其他线程,但还没有找到答案。致命的异常:主要的android eclipse

几个星期前,我使用插件和示例项目与插件开始了一个新项目。添加了各种我自己的功能和设计,并且运行该项目时没有任何问题。

2天前,更新到ADT 17,这严重搞砸了我的东西。开始获得课堂路径错误仅举几例。然后,我恢复到ADT 16修复了错误,我的项目编译正常,但只要我运行它在测试设备上崩溃。

我检查了我的合规性级别是否正确,检查了库路径,api版本,清单xml,基本上都是。我不明白如何使用完美的东西现在可以不起作用。

我继续打开所有的东西,并重新安装了sdk的ADT和java,但无济于事,甚至只是试图运行示例项目就崩溃了。

我也已经从设备上卸载了应用程序,并启动了设备并清除了缓存。我在我绳索的尽头。就像我说的,我已经检查过库和一切,它只是这个运行时错误。

我还增加了连接时间,并加入“安卓的installLocation =”。preferExternal”我的表现,没有任何变化

请帮帮忙,有不能与代码中的问题,因为它的工作完美

请参阅启动活动代码:

package com.yourcompany.junaioplugin.template; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 

import com.yourcompany.junaioplugin.template.R; 

import com.metaio.junaio.plugin.JunaioPlugin; 

public class SplashActivity extends Activity 
{ 

static 
{ 
    JunaioPlugin.loadNativeLibs(); 
} 

/** 
* standard tag used for all the debug messages 
*/ 
public static final String TAG = "junaioPluginTemplate"; 

/** 
* Display log messages with debug priority 
* 
* @param msg Message to display 
* @see Log#d(String, String) 
*/ 
public static void log(String msg) 
{ 
    if (msg != null) 
     Log.d(TAG, msg); 

} 

/** 
* Progress dialog 
*/ 
private ProgressDialog progressDialog; 


@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    JunaioStarterTask junaioStarter = new JunaioStarterTask(); 
    junaioStarter.execute(1); 
} 


private class JunaioStarterTask extends AsyncTask<Integer, Integer, Integer> 
{ 

    @Override 
    protected void onPreExecute() 
    { 
     progressDialog = ProgressDialog.show(SplashActivity.this,   "junaio", "Starting up..."); 
    } 

    @Override 
    protected Integer doInBackground(Integer... params) 
    { 

     // Set authentication if a private channel is used 
//   JunaioPlugin.setAuthentication("username", "password"); 

     // Start junaio, this will initialize everything the plugin need 
     int result = JunaioPlugin.startJunaio(this, getApplicationContext()); 

     return result; 
    } 

    @Override 
    protected void onProgressUpdate(Integer... progress) 
    { 

    } 

    @Override 
    protected void onPostExecute(Integer result) 
    { 
     if (progressDialog != null) 
     { 
      progressDialog.cancel(); 
      progressDialog = null; 
     } 

     switch (result) 
     { 
     case JunaioPlugin.ERROR_EXSTORAGE: 
      SplashActivity.log("External storage is not available, closing..."); 
      finish(); 
      break; 
     case JunaioPlugin.ERROR_INSTORAGE: 
      SplashActivity.log("Internal storage is not available, closing..."); 
      finish(); 
      break; 
     case JunaioPlugin.CANCELLED: 
      SplashActivity.log("Starting junaio cancelled"); 
      break; 
     case JunaioPlugin.SUCCESS: 
      JunaioPlugin.setAuthentication("junaioTester", "test123"); 
      launchLiveView(); 
      break; 
     } 
    } 

} 


/** 
* Launch junaio live view 
*/ 
private void launchLiveView() 
{ 

    startActivity(new Intent(this, JunaioARViewTestActivity.class)); 
    finish(); 
} 

@Override 
protected void onResume() 
{ 
    super.onResume(); 

} 

@Override 
protected void onPause() 
{ 
    super.onPause(); 
} 

@Override 
protected void onStop() 
{ 
    super.onStop(); 

    if (progressDialog != null) 
    { 
     progressDialog.cancel(); 
     progressDialog = null; 
    } 
} 

} 

这里是logcat的:

03-27 10:47:47.543: I/dalvikvm(10641): Could not find method     com.metaio.junaio.plugin.JunaioPlugin.loadNativeLibs, referenced from method com.yourcompany.junaioplugin.template.SplashActivity.<clinit> 

    03-27 10:47:47.543: W/dalvikvm(10641): VFY: unable to resolve static method 65: Lcom/metaio/junaio/plugin/JunaioPlugin;.loadNativeLibs()V 
    03-27 10:47:47.543: D/dalvikvm(10641): VFY: replacing opcode 0x71 at 0x0000 
    03-27 10:47:47.543: D/dalvikvm(10641): VFY: dead code 0x0003-0003 in Lcom/yourcompany/junaioplugin/template/SplashActivity;.<clinit>()V 
    03-27 10:47:47.543: W/dalvikvm(10641): Unable to resolve superclass of Lcom/yourcompany/junaioplugin/template/JunaioARViewTestActivity; (48) 
    03-27 10:47:47.543: W/dalvikvm(10641): Link of class 'Lcom/yourcompany/junaioplugin/template/JunaioARViewTestActivity;' failed 
    03-27 10:47:47.547: E/dalvikvm(10641): Could not find class 'com.yourcompany.junaioplugin.template.JunaioARViewTestActivity', referenced from method com.yourcompany.junaioplugin.template.SplashActivity.launchLiveView 
    03-27 10:47:47.547: W/dalvikvm(10641): VFY: unable to resolve const-class 78 (Lcom/yourcompany/junaioplugin/template/JunaioARViewTestActivity;) in Lcom/yourcompany/junaioplugin/template/SplashActivity; 
    03-27 10:47:47.547: D/dalvikvm(10641): VFY: replacing opcode 0x1c at 0x0002 
    03-27 10:47:47.547: D/dalvikvm(10641): VFY: dead code 0x0004-000d in Lcom/yourcompany/junaioplugin/template/SplashActivity;.launchLiveView()V 
    03-27 10:47:47.547: W/dalvikvm(10641): Exception Ljava/lang/NoClassDefFoundError; thrown during Lcom/yourcompany/junaioplugin/template/SplashActivity;.<clinit> 
    03-27 10:47:47.547: W/dalvikvm(10641): Class init failed in newInstance call (Lcom/yourcompany/junaioplugin/template/SplashActivity;) 
    03-27 10:47:47.547: D/AndroidRuntime(10641): Shutting down VM 
    03-27 10:47:47.547: W/dalvikvm(10641): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): FATAL EXCEPTION: main 
    03-27 10:47:47.555: E/AndroidRuntime(10641): java.lang.ExceptionInInitializerError 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at java.lang.Class.newInstanceImpl(Native Method) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at java.lang.Class.newInstance(Class.java:1429) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.os.Handler.dispatchMessage(Handler.java:99) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.os.Looper.loop(Looper.java:123) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at android.app.ActivityThread.main(ActivityThread.java:4627) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at java.lang.reflect.Method.invokeNative(Native Method) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at java.lang.reflect.Method.invoke(Method.java:521) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at dalvik.system.NativeStart.main(Native Method) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): Caused by: java.lang.NoClassDefFoundError: com.metaio.junaio.plugin.JunaioPlugin 
    03-27 10:47:47.555: E/AndroidRuntime(10641): at com.yourcompany.junaioplugin.template.SplashActivity.<clinit>(SplashActivity.java:19) 
    03-27 10:47:47.555: E/AndroidRuntime(10641): ... 15 more 

这里是清单:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
android:versionCode="3" 
android:versionName="3.5.1" package="com.yourcompany.junaioplugin.template" 
android:installLocation="preferExternal"> 

<!-- The application must be compiled using Google APIs (Android 3.0) --> 
<!-- However, target and min SDK can be 8 (Android 2.2) --> 
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8"/> 

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.WAKE_LOCK"/> 
<uses-feature android:name="android.hardware.camera" android:required="false"/> 
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> 
<uses-feature android:name="android.hardware.location.gps" android:required="false"/> 
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="false"/> 
<uses-feature android:name="android.hardware.sensor.compass" android:required="false"/> 
<uses-feature android:glEsVersion="0x00020000" android:required="true" /> 

<application 
    android:label="@string/app_name" 
    android:icon="@drawable/icon" 
    android:debuggable="true"> 

    <uses-library android:name="com.google.android.maps" /> 

    <!-- Start screen --> 
    <activity android:name=".SplashActivity" 
       android:theme="@style/Theme.Fullscreen" 
       android:screenOrientation="portrait" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <!-- junaio AR view activity --> 
    <activity 
     android:name=".JunaioARViewTestActivity" 
     android:theme="@style/Theme.Fullscreen" 
     android:configChanges="orientation" 
     android:screenOrientation="landscape"> 
    </activity> 

    <activity 
     android:name="com.metaio.junaio.plugin.view.POIDetailDialog" 
     android:theme="@style/Theme.POIDialog" 
     android:screenOrientation="landscape"> 
    </activity> 

    <activity 
     android:name="com.metaio.junaio.plugin.view.WebViewActivity" 
     android:theme="@style/Theme.Fullscreen" 
     android:configChanges="orientation">" 
    </activity> 

    <activity 
     android:name="com.metaio.junaio.plugin.view.ImageViewActivity" 
     android:theme="@style/Theme.Fullscreen" 
     android:configChanges="orientation"> 
    </activity> 

</application> 

</manifest> 
+1

是这个“com.metaio.junaio.plugin.JunaioPlugin”的jar文件。 – 2012-03-27 10:21:10

+1

好吧,这是如何放在一起:有两个项目,一个被引用为librabry,而JunaioPlugin.class位于此引用的项目/引用库/ junaioplugin.jar中。在jar里面有一个带有JunaioPlugin.class的com.metaio.junaio.plugin包。但它找不到源的奇怪的因为它总是运行良好,没有任何变化,这是标准插件示例项目。[链接](http://locatesa.co.za/screen/screen.jpg) – user1285471 2012-03-27 12:29:11

回答

2

对我来说,当我安装了ADT 17我有使用第三方库的问题(它不停地告诉我有重复)。事实证明,他们不再需要添加到构建路径中;只是保存在名为“libs”的项目根目录中的一个文件夹中。这可能是同样的问题吗?

+1

谢谢,现在就试试吧,回复 – user1285471 2012-03-27 10:14:07

+1

感谢您的快速响应,但没有修复它 – user1285471 2012-03-27 10:17:11

+0

这很酷。如果我想到其他东西,我会发布。 – NotACleverMan 2012-03-27 10:18:32