entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Error al usar una librería en Android

Que tal, estoy tratando de usar una librería para visualizar archivos PDF en android, la implementación está bien, el problema es al momento de compilar me salta este error:

1-27 10:30:33.049 5371-5371/mx.xx.pdfviewtest E/AndroidRuntime: FATAL EXCEPTION: main
11-27 10:30:33.049 5371-5371/mx.xx.pdfviewtest E/AndroidRuntime: android.content.ActivityNotFoundException: Unable to find explicit activity class {mx.appco.pdfviewtest/mx.xx.pdfviewtest.PDFviwereClass}; have you declared this activity in your AndroidManifest.xml?
11-27 10:30:33.049 5371-5371/mx.xx.pdfviewtest E/AndroidRuntime:     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1635)

Bien, lo que falta es declararlo en el archivo Manifest, ahí es el problema, ya que lo declaré así:

<activity android:name="net.sf.andpdf.pdfviewer.PdfViewerActivity" >
        </activity>

Pero me marca un error con el siguiente mensaje:

"net.sf.andpdf.pdfviewer.PdfViewerActivity" is not concrete class

TIP:
Este error me sale al momento de invocar la actividad por medio del INTENT:

pdfButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, PDFviwereClass.class);
                intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "file:///android_asset/AndroidStudioEssentialsPreview.pdf");
                startActivity(intent);
            }
        });

¿Alguien tendrá una idea de esto?

2 Respuestas

1voto

x4mp73r Puntos13390

Realmente es muy sencillo.
La respuesta de @migamipe es correcta, de hecho, para eso tenía mi clase PDFviereClass la cual la extendía a PdfViewerActivity, el error que tenía es esto:

//Declarar en el Manifest la actividad que deriva de PdfViewerActivity 
<activity
            android:name=".PDFviwereClass"
            android:label="@string/pdf_name"
            >

        </activity>

Anteriormente tenía declarado net.sf.andpdf.pdfviewer.PdfViewerActivity, lo cual no es correcto.
Otra cosa también y que realmente no entiendo es que cambie de :

public class PDFviwereClass extends net.sf.andpdf.pdfviewer.PdfViewerActivity {

a

public class PDFviwereClass extends PdfViewerActivity {

Y de esa manera si funcionó, realmente me parece una tontería :V

2votos

MitsuGami Puntos8010

No uses PdfViewerActivity como una clase concreta porque es abstracta. En su lugar, extiéndela y coloca tu código en ella. Por ejemplo:

public class ReportPdfViewerActivity extends PdfViewerActivity {

   // código
}

0voto

x4mp73r comentado

Que tal, gracias por responder, lo que dices, si es cierto, de hecho así lo tenía:
Intent intent = new Intent(MainActivity.this, PDFviwereClass.class); intent.putExtra(PdfViewerActivity.EXTRA_PDFFILENAME, "file:///android_asset/AndroidStudioEssentialsPreview.pdf"); startActivity(intent);
Donde PDFViewerActivity es mi clase donde la extendía, a lo que tu dices estaba mal en el Manisfest, ahora mismo coloco la respuesta, gracias por tomarte tu tiempo :)

0voto

x4mp73r comentado

@migamipe Una pregunta, ¿sabes si es correcto guardar los archivos pdf en la carpeta "assets"? y si es correcta la manera en como selecciono el archivo en el Intent?

0voto

MitsuGami comentado

  1. Sí, es correcta la manera hasta donde sé.
  2. Claro, en assets van todos tus recursos. Puedes poner imágenes y otros documentos como PDFs.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta