android / android/codelab-android-dynamic-features
android.content.res.Resources$NotFoundException: Resource ID #0x0
- Vorherrschende Sprache
- Kotlin
- Sterne
- 129
- Forks
- 51
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hi,
Post installation of dynamic module, if we are accessing any resource through **Resources#getIdentifier(String name, String defType, String defPackage)** method which returns 0 as resourceId
We have added only one resource in our drawable folder i.e default_refer.png and made some changes in KotlinSampleActivity.
Kindly suggest what we are doing wrong.
```
class KotlinSampleActivity : BaseSplitActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_feature_kotlin)
// not working
try {
ContextCompat.getDrawable(this, resources.getIdentifier("default_refer", "drawable", packageName))
} catch (e: Exception) {
e.printStackTrace()
}
// working
try {
ContextCompat.getDrawable(this, R.drawable::class.java.getField("default_refer").getInt(null))
} catch (e: Exception) {
e.printStackTrace()
}
// working
try {
ContextCompat.getDrawable(this, R.drawable.default_refer)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
```
Beitragsleitfaden
Rechercherichtung
Beginne mit KotlinSampleActivity und reproduziere den Fehler nach der Installation des dynamischen Moduls. Konzentriere dich dabei auf den Aufruf von Resources#getIdentifier und die drei gezeigten Formen der Drawable-Suche. Verfolge, wie das dynamische Modul default_refer.png verfügbar macht, und überprüfe das Verhalten der Ressourcensuche. Als abgeschlossen gilt die Aufgabe, wenn du die Ressourcen-ID 0 erklärst und eine verifizierte Korrektur bereitstellst.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- android, kotlin
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100