>
A seguir, problema de erro, no projeto VENDA, conforme o curso, sendo:
-- Execução no TABLET - Samsung Galaxy Note
-- O ADT é da última versão, baixada no site oficial
-- (! No projeto tem outro erro, no evento de Salvar_Click com o LocationManager, porém vou deixar resolver este primeiro para partir para a segunda questão !)
*********************************************************************************************
---- LOGCAT
*********************************************************************************************
06-24 11:55:06.707: E/AndroidRuntime(15080): FATAL EXCEPTION: main
06-24 11:55:06.707: E/AndroidRuntime(15080): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.daq.curso.vendas/br.com.daq.curso.vendas.NovaVendaActivity}: java.lang.NullPointerException
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2294)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2348)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread.access$700(ActivityThread.java:159)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.os.Handler.dispatchMessage(Handler.java:99)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.os.Looper.loop(Looper.java:137)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread.main(ActivityThread.java:5414)
06-24 11:55:06.707: E/AndroidRuntime(15080): at java.lang.reflect.Method.invokeNative(Native Method)
06-24 11:55:06.707: E/AndroidRuntime(15080): at java.lang.reflect.Method.invoke(Method.java:525)
06-24 11:55:06.707: E/AndroidRuntime(15080): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
06-24 11:55:06.707: E/AndroidRuntime(15080): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
06-24 11:55:06.707: E/AndroidRuntime(15080): at dalvik.system.NativeStart.main(Native Method)
06-24 11:55:06.707: E/AndroidRuntime(15080): Caused by: java.lang.NullPointerException
06-24 11:55:06.707: E/AndroidRuntime(15080): at br.com.daq.curso.vendas.NovaVendaActivity.onCreate(NovaVendaActivity.java:66)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.Activity.performCreate(Activity.java:5372)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
06-24 11:55:06.707: E/AndroidRuntime(15080): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
06-24 11:55:06.707: E/AndroidRuntime(15080): ... 11 more
*********************************************************************************************
--- EXTRATO DE NovaVendaActivity.java
--- A linha 66, apontada no LOGCAT, refere-se spProdutos.setAdapter(ad)
*********************************************************************************************
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nova_venda);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
//criando objeto Spinner
Spinner spProdutos = (Spinner)findViewById(R.id.spProdutos);
//abrindo o banco de dados
SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);
//criando cursor
Cursor cursor = db.rawQuery("SELECT * FROM produtos ORDER BY nome ASC", null);
//Matriz tipo string com os campos que deseja retornar
String[] from = {"_id","nome","preco"};
//Matriz de destino
int[] to = {R.id.txvLayoutID,R.id.txvLayoutNome,R.id.txvLayoutPreco};
//Criando um adpatador para inserir os dados no spinner. Não insere direto
//Necessario criar um arquivo XML que sirva de adaptor para o spinner
//Criado arquivo ANDROID XML LAYOUT - nome:spinner.xml
//Adpater -> contexto, layout, cursor (de onde), quais campos, para onde vai
SimpleCursorAdapter ad = new SimpleCursorAdapter(
getBaseContext(),R.layout.spinner_layout,
cursor,from,to
);
//Faz a adaptacao
// ********************************************
// Erro nesta linha - não passa dela --- LINHA 66 - abaixo
spProdutos.setAdapter(ad);
// Se a linha 66 for comentada, segue normalmente, mas claro que sem a lista de produtos no spinner
// ********************************************
db.close();
}
*********************************************************************************************
-- Spinner_layout.xml
*********************************************************************************************
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="TextView" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="TextView" />
*********************************************************************************************
-- Manifest.xml
*********************************************************************************************
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="14" />
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:label="@string/app_name" >
android:label="@string/title_activity_nova_venda" >
Ola Delio
mostre os seus imports q ta la no começo do seu .java....
Import do NovaVendaActivity.java
********************************
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SimpleCursorAdapter;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Spinner;
import android.os.Build;
faz assim
coloca la nos imports
import android.widget.SimpleCursorAdapter
Fiz a alteração no imports, da forma recomendada, porém o problema foi o mesmo.
Acrescento que tive que retirar a referência anterior ao android.support.v4.widget.SimpleCursorAdapter por conflitar a existência de ambos.
Ficou somente android.support.v4.widget.SimpleCursorAdapter e o erro continua na linha 66.
Corrigindo o postado anteriormente, ficou somente
import android.widget.SimpleCursorAdapter;
E erro na linha 66, da mesma forma que postado anteriormente.
Délio
O erro ainda existe?
Olá...Tenho um problema.. sigo todos os passos da vidro aula e acontece o seguinte...quando clico no diretório SRC... não aparece nada e quando vou consultar aparece a seguinte mensagem...
Description Resource Path Location Type
The container 'Android Dependencies' references non existing library 'E:\Desenvolvimento Android\adt-bundle-windows-x86_64-20140624\sdk\tools\support\annotations.jar'
alguém pode me ajudar.. agradeço antecipadamente.!
Ola Joao
baixa o annotation deste site aki
http://goo.gl/x0u4WB
e substitua na pasta E:\Desenvolvimento Android\adt-bundle ...\annotations.jar
Delio,
poste aki esse erro na linha 66
Olá, vou postar de novo o código com erro, o qual a linha é outra porque acrescentei uns códigos de debug, mas o local é o mesmo, quando é chamando o setAdapter.
****************************************
LOGCAT
****************************************
06-30 20:54:07.462: E/AndroidRuntime(28714): FATAL EXCEPTION: main
06-30 20:54:07.462: E/AndroidRuntime(28714): Process: br.com.daq.curso.vendas, PID: 28714
06-30 20:54:07.462: E/AndroidRuntime(28714): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.daq.curso.vendas/br.com.daq.curso.vendas.NovaVendaActivity}: java.lang.NullPointerException
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread.access$900(ActivityThread.java:169)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.os.Handler.dispatchMessage(Handler.java:102)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.os.Looper.loop(Looper.java:136)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread.main(ActivityThread.java:5476)
06-30 20:54:07.462: E/AndroidRuntime(28714): at java.lang.reflect.Method.invokeNative(Native Method)
06-30 20:54:07.462: E/AndroidRuntime(28714): at java.lang.reflect.Method.invoke(Method.java:515)
06-30 20:54:07.462: E/AndroidRuntime(28714): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
06-30 20:54:07.462: E/AndroidRuntime(28714): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
06-30 20:54:07.462: E/AndroidRuntime(28714): at dalvik.system.NativeStart.main(Native Method)
06-30 20:54:07.462: E/AndroidRuntime(28714): Caused by: java.lang.NullPointerException
06-30 20:54:07.462: E/AndroidRuntime(28714): at br.com.daq.curso.vendas.NovaVendaActivity.onCreate(NovaVendaActivity.java:77)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.Activity.performCreate(Activity.java:5473)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
06-30 20:54:07.462: E/AndroidRuntime(28714): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
06-30 20:54:07.462: E/AndroidRuntime(28714): ... 11 more
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nova_venda);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
//criando objeto Spinner
Spinner spProdutos = (Spinner)findViewById(R.id.spProdutos);
//abrindo o banco de dados
SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);
//criando cursor
Cursor cursor = db.rawQuery("SELECT * FROM produtos ORDER BY nome ASC", null);
//Matriz tipo string com os campos que deseja retornar
String[] from = {"_id","nome","preco"};
//Matriz de destino
int[] to = {R.id.txvLayoutID,R.id.txvLayoutNome,R.id.txvLayoutPreco};
/*
while (cursor.moveToNext()) {
Log.d("REGISTRO",cursor.getString(cursor.getColumnIndex("_id")) " "
cursor.getString(cursor.getColumnIndex("nome")) " "
cursor.getString(cursor.getColumnIndex("preco"))
);
}
*/
//Criando um adpatador para inserir os dados no spinner. Não insere direto
//Necessario criar um arquivo XML que sirva de adaptor para o spinner
//Criado arquivo ANDROID XML LAYOUT - nome:spinner.xml
//Adpater -> contexto, layout, cursor (de onde), quais campos, para onde vai
SimpleCursorAdapter ad = new SimpleCursorAdapter(
getBaseContext(),R.layout.spinner_layout,
cursor,from,to
);
//Faz a adaptacao
// ********************************************
// Erro nesta linha - não passa dela (LINHA 77 do LOGCAT)
spProdutos.setAdapter(ad);
// ********************************************
db.close();
}
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
//import android.support.v4.widget.SimpleCursorAdapter;
import android.widget.SimpleCursorAdapter;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Spinner;
import android.os.Build;
import android.util.Log;
mostre seu xml spinner_layout.xml e seu activity_nova_venda.xml