Решил добавить в существующее приложение рекламу AdMob.
Выполнив все строго по инструкции, получаю на сроке кода:
bnrd1.LoadAd;
ошибку "Java class JAdSize could not be found"
При этом, если создать новое приложение, и полностью перенести туда код показа баннера, то все работает нормально.
ошибка возникает потому, что в модуле Androidapi.JNIBridge, в процедуре:
class function TJNIResolver.GetJavaClassID(constAClass: string):JNIClass;
var
LTemp: UTF8String;LJNIEnvRes:PJNIEnv;
begin
LJNIEnvRes:=TJNIResolver.GetJNIEnv;LTemp:= UTF8String(AClass);Result:=LJNIEnvRes^.FindClass(LJNIEnvRes,MarshaledAString(LTemp));ifResult= nil then
begin
ExceptionCheck;ifClassLoader= nil then
ClassLoader:=TClassLoader.Create;Result:=ClassLoader.LoadClass(AClass);ifResult= nil then
ExceptionCheck;
end;
end;
когда в нее передается AClass = ''com/google/android/gms/ads/AdSize'',
строка
Result := LJNIEnvRes^.FindClass(LJNIEnvRes, MarshaledAString(LTemp));
возвращает nil. В пустом приложении, где все работает тут возвращается значение <> nil
Вопрос
Maka
Коллеги, подскажите где искать ошибку?
Решил добавить в существующее приложение рекламу AdMob.
Выполнив все строго по инструкции, получаю на сроке кода:
bnrd1.LoadAd;
ошибку "Java class JAdSize could not be found"
При этом, если создать новое приложение, и полностью перенести туда код показа баннера, то все работает нормально.
ошибка возникает потому, что в модуле Androidapi.JNIBridge, в процедуре:
когда в нее передается AClass = ''com/google/android/gms/ads/AdSize'',
строка
Result := LJNIEnvRes^.FindClass(LJNIEnvRes, MarshaledAString(LTemp));
возвращает nil. В пустом приложении, где все работает тут возвращается значение <> nil
Где копать? Куда смотреть?
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения