2012-03-27 112 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