2016-03-01 160 views
1

我在運行應用程序時遇到了此活動的崩潰。這不是由於appcompat,因爲您可以在堆棧跟蹤中看到。這是原生android ListView類,在運行應用程序時未找到其方法。Android應用程序崩潰java.lang.NoSuchMethodError

相同的應用程序在其他設備上正常運行。中的minSdkVersion = 13 TARGET = 23最大值= 23和崩潰的當前設備是API 17

FATAL EXCEPTION: main 
java.lang.NoSuchMethodError: android.widget.ListView.setElevation 
at com.example.saloni.laughgurumarketingapp.ContentDetails.getValues(ContentDetails.java: 392) 
at com.example.saloni.laughgurumarketingapp.ContentDetails.onCreate(ContentDetails.java: 298) 
at android.app.Activity.performCreate(Activity.java: 5122) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1081) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2270) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2358) 
at android.app.ActivityThread.access$600(ActivityThread.java: 156) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java: 1340) 
at android.os.Handler.dispatchMessage(Handler.java: 99) 
at android.os.Looper.loop(Looper.java: 153) 
at android.app.ActivityThread.main(ActivityThread.java: 5297) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java: 511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 833) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 600) 
at dalvik.system.NativeStart.main(Native Method) 

在代碼中,它只是一個關於它崩潰,你可以在跟蹤看到一組高程法。同樣,它使用TextView類方法之一上次崩潰。這是爲什麼發生?

回答

4

api 17中沒有setElevation()方法。您只需要在api 21和更高版本上調用此方法。

https://developer.android.com/reference/android/view/View.html#setElevation(float)

如果要調用這個方法對API的21臺設備這樣做:

int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){ 
    // Do something for lollipop and above versions 
} else{ 
    // do something for phones running an SDK before lollipop 
} 
+0

但如果這是真的,那麼提供min sdk版本有什麼用?如果方法肯定會崩潰,那麼爲什麼要讓開發人員使用它? – Sushobhit333

+0

看看這個http://stackoverflow.com/a/3940823/1764080你需要這樣做這個方法調用 – Shmuel

2

您可以使用ViewCompat.setElevation和您的應用程序將無法在預定21系統崩潰;但它對這些較舊的設備也不會有任何影響。