Получение java.lang.noclassdeffounderror в очень простом приложении Hello WorldAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Получение java.lang.noclassdeffounderror в очень простом приложении Hello World

Сообщение Anonymous »

Самоуверенный вопрос. Чтобы увидеть, не является ли проблема, я проверил, что классы существуют с помощью dexdump (вывод ниже). < /P>
logcat
2-25 19:27:45.073 4126 4126 D test.app: main.c:53 _loadclass() (*env)->FindClass(&(*env), "android/app/NativeActivity") == 0x75
02-25 19:27:45.073 4126 4126 D test.app: main.c:54 _loadclass() (*env)->FindClass(&(*env), "test/app/MainActivity") == 0x0
02-25 19:27:45.073 4126 4126 F test.app: thread.cc:2165] No pending exception expected: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
< /code>
AndroidManifest.xml













< /code>
MainActivity.java
package test.app;

import android.os.Bundle;
import android.app.NativeActivity;

public class MainActivity extends NativeActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
< /code>
HelloWorld.java
package test.app;

public class HelloWorld {
public void main(String[] args) {
}
}
< /code>
main.c
JNIEXPORT void ANativeActivity_onCreate(ANativeActivity *act, void *ss,
size_t sssz) {
...
PRINTPTR(ENV->FindClass(&ENV, "android/app/NativeActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/MainActivity"));
PRINTPTR(ENV->FindClass(&ENV, "test/app/HelloWorld"));
...
}
< /code>
dexdump classes.dex
Processing 'classes.dex'...
Opened 'classes.dex', DEX version '035'
Class #0 -
Class descriptor : 'Ltest/app/HelloWorld;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/HelloWorld;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=3
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/HelloWorld;
Virtual methods -
#0 : (in Ltest/app/HelloWorld;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0001 (PUBLIC)
code -
registers : 2
ins : 2
outs : 0
insns size : 1 16-bit code units
catches : (none)
positions :
locals :
source_file_idx : 1 (HelloWorld.java)

Class #1 -
Class descriptor : 'Ltest/app/MainActivity;'
Access flags : 0x0001 (PUBLIC)
Superclass : 'Landroid/app/NativeActivity;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in Ltest/app/MainActivity;)
name : ''
type : '()V'
access : 0x10001 (PUBLIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=6
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
Virtual methods -
#0 : (in Ltest/app/MainActivity;)
name : 'onCreate'
type : '(Landroid/os/Bundle;)V'
access : 0x0004 (PROTECTED)
code -
registers : 2
ins : 2
outs : 2
insns size : 4 16-bit code units
catches : (none)
positions :
0x0000 line=9
locals :
0x0000 - 0x0004 reg=0 this Ltest/app/MainActivity;
0x0000 - 0x0004 reg=1 (null) Landroid/os/Bundle;
source_file_idx : 7 (MainActivity.java)



Подробнее здесь: https://stackoverflow.com/questions/794 ... -world-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»