You have tried to change the API from what has been previously approved

 2023-12-25 阅读 25 评论 0

摘要:Android編譯錯誤:You have tried to change the API from what has been previously approved. android SDK中有些JAVA類是開放的,有些是不開放的,API同樣如此。這里所謂開放的類或API,只是javadoc的范疇,并不是java中public和private

Android編譯錯誤:You have tried to change the API from what has been previously approved.

android SDK中有些JAVA類是開放的,有些是不開放的,API同樣如此。這里所謂開放的類或API,只是javadoc的范疇,并不是java中public和private,也就是說,對于源碼的編譯無所謂,只是對javadoc的生成有影響關于類的開放和隱藏,但是對android的上層應用有影響,因為非開放的類或API,android上層應用無法直接訪問。
類或API是否開放,是通過doc的注釋{@hide}來控制的。比如android.media.Metadata 這個類就是android沒有公開的類,因為在frameworks\base\media\libmedia\Metadata.java文件中,定義Metadata類之前有/**{@hide}*/此doc注釋,所以Metadata類被定義為了非公開類,即是在android應用程序中無法直接訪問的類。
但是如果我們在Android的公開類中添加了一些自定義的成員方法或成員變量,生成我們修改后的sdk(jar包)供上層應用程序使用,此時在編譯源碼生成SDK的過程中會出現這個問題:


You have tried to change the API from what has been previously approved.
To make these errors go away, you have two choices:

  1. You can add “@hide” javadoc comments to the methods, etc. listed
    in the
    errors above.
  2. You can update current.xml by executing the following commands:
    p4 edit frameworks/base/api/current.xml
    make update-api
    To check in the revised current.xml, you will need OWNERS
    approval.

google 給了兩個選擇:

  1. 在你添加的API或者變量前面,(在java類中找到自己定義的變量)增加javadoc 注釋@hide。但是要注意的是,并不是簡單寫個@hide 或者 /@hide/ 就可以了,這些都是錯誤的javadoc注釋格式,標準的javadoc都是這樣的 /** / 而且對于 format 變量 應該加上 { }。
    所以我們應該這樣寫 /
    * {@hide} */
  2. 你就是想要生成的javadoc里面出現這個方法或者變量,你必須輸入:
    make update-api
    但是如果修改的是google沒有開放出來的類,比如RIL,PhoneFactory,就不會出現這個問題

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/194849.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息