2015-01-27 5 views
0

Мне нужно создать AR приложение, чтобы сделать как в этой ссылке: http://www.wikitude.com/external/doc/documentation/latest/android/imagerecognition.html#multipletargetНе удается загрузить AR опыт в Wikitude

Я написал код и попытался его, он открывает камеру, но я думаю, что это не может нагрузка использовать AR опыт (index.html)

Это код MainActivity.java:

Примечание: путь index.html в го проекта: активы/miarec/index.hmtl

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Toast; 
import com.wikitude.architect.ArchitectView; 
import java.io.IOException; 

public class MainActivity extends ActionBarActivity { 

ArchitectView architectView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    this.architectView = (ArchitectView)this.findViewById(R.id.architectView); 
    final ArchitectView.ArchitectConfig config = new ArchitectView.ArchitectConfig("3Axht4JgkVsnCHOuwl76PM0NDRnpRNL5PwwrPd1kgIN7aAP5sGJxBp3hvA3SIE+zrzwaqvulTUb7hhYz1/iQJiY9M3K8825GHJkssi5nHP8ZhtdoIo0z2fV2PkGUY9DzmVG/z2f3Uu8FKyulXFFegYEQZcvSCVIYvBmI6y0MIAFTYWx0ZWRfX6IIZxx4haqZxXDO5sj4bWkWKn2INx38uRuDKzaF6TVj7NV2MpeQeOvWWWGx7TKLL8DfOO8W4ARCSicBw6Vmejq7WMFQuMvte1y+r6rxZ2irjTBd8IpiAezUX8cxpy26SNbd1Gm+PWdjizE3Yqqr3/mi5NcDWlGm3GICiCeFvDNFgwryW7kPG6JTjhWA3GiUTfUE7AAJI349ZbtisyhP8YLzRvPUIc8t9nKs0aEMCme3e3CNiacl7rAuUWI7YNYD28GQ9EpTwAL8F29tV1n3dcXhxyuKfyptft71DI1SVVQ67/3UNml6bA06R3ZZiwyYD1f9l/Kfz5Q6RaFGXBL6vKHKwSt0vfeul2lmB4N1FJ+6GCSsB8cvIyhq3QtMQhbG9CiihTlsF9WVQdIVtbXFuGo=" /* license key */); 
    this.architectView.onCreate(config); 

} 

@Override 
protected void onPostCreate(final Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 

    if (this.architectView != null) { 

     // call mandatory live-cycle method of architectView 
     this.architectView.onPostCreate(); 

     try { 
      // load content via url in architectView, ensure '<script src="architect://architect.js"></script>' is part of this HTML file, have a look at wikitude.com's developer section for API references 

      String s= getAssets().open("miarec/index.html").toString(); 
      this.architectView.load(getAssets().open("miarec/index.html").toString()); 



     } catch (IOException e1) { 
      e1.printStackTrace(); 
     } 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

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

    this.architectView.onResume(); 
} 

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

    // call mandatory live-cycle method of architectView 
    if (this.architectView != null) { 
     this.architectView.onPause(); 


    } 


} 

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

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

    // call mandatory live-cycle method of architectView 
    if (this.architectView != null) { 
     this.architectView.onDestroy(); 
    } 
} 

@Override 
public void onLowMemory() { 
    super.onLowMemory(); 
    if (this.architectView != null) { 
     this.architectView.onLowMemory(); 
    } 
} 

}

Это activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context=".MainActivity"> 

    <com.wikitude.architect.ArchitectView android:id="@+id/architectView" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"/> 

</RelativeLayout> 

Я получаю это предупреждение в Android Studio XML предпросмотре:

Rendering Problems The following classes could not be instantiated: 
- com.wikitude.architect.ArchitectView (Open Class, Show Exception) 
Tip: Use View.isInEditMode() in your custom views to skip code or show   
sample data when shown in the IDE Exception Details 
java.lang.NullPointerException   at 
com.wikitude.architect.ArchitectView.e  at 
com.wikitude.architect.ArchitectView.a  at 
com.wikitude.architect.ArchitectView.<init>  at 
com.wikitude.architect.ArchitectView.<init>  at 

Спасибо очень

ответ

1

Пожалуйста, обратите внимание на приложение Sample Sample, которое также использует относительные пути в папке с ресурсами. Вызов architectView.load ("index.html") загрузит файл из папки ресурсов приложения и architectView.load ("yourpath/index.html") индекс html-файл в вашем пути относительно корневого каталога ресурсов , не нужно использовать абсолютный каталог ресурсов.

Возможно, в вашем JS-коде может быть ошибка. Вы пробовали загрузить его из корневой папки assets? Сначала попробуйте загрузить valid sample application, а затем замените его собственным исходным кодом.

Также обратите внимание на Android remote dubugging, чтобы найти возможные ошибки JS.

С наилучшими пожеланиями, Andreas

PS .: Пожалуйста, избегать размещения такой же вопрос к различным форумам, вы уже задавали этот вопрос в Wikitude Forum.

+0

Уважаемый Andreas Hauser, Большое спасибо, ваш ответ дал мне около 80% решения. Моя ошибка была с папкой asstes, я создать его как обычный каталог В то время как я должен создать в андроида студии, как таким образом правой кнопкой мыши на описании ввода изображения здесь папки и перейдите к новой -> Папка -> Папка активов. и убедитесь, что для этого: Глядя внутри .iml файл вашего проекта, вы увидите следующую строку: <параметр Name = «ASSETS_FOLDER_RELATIVE_PATH» значение = «/ SRC/основные/активы» /> наилучшими пожеланиями , swe.anas – SWE